ADT構成を最新のAndroid Studio 3.0 Canary7で動かしてみる
はじめに
古いADTの頃のプロジェクトを編集するのに、
- 今後大規模な改修はない
- gitの差分が取れる微修正で対応したい
みたいな事がある。昔下記のスライドをまとめていましたが、改めて最新環境で試して見たメモ
動作環境
追加するファイル構成イメージ
//他のプロジェクトからコピーしてくるもの gradle wrapper gradle-wrapper.properties gradlew gradlew.bat local.properties // 新規作成するもの build.gradle init.gradle gradle.properties //マルチプロジェクトは不安定になるので libs_aar google-play-services_lib_froyo_rev12-debug.aar
ファイル説明
うーん。hatenaで昔 gistの部分切り出し貼り付けが出来たはずなんですけど
やり方忘れたのでリンクだけ貼ります。あとで分かったら修正予定
他のプロジェクトからコピーしてくるもの
- gradle/wrapper/gradle-wrapper.properties
- https://gist.github.com/kimukou/2d4faac29187b677c5cb1d6a19606d35#file-gradle-wrapper-properties
gradle plugin 2.1.X 系が gradle-2.14.1-bin.zip を指定してしまっているのでこれに変更
事前に準備するもの
google-play-services_lib_froyo_rev12 を使っているプロジェクトでしたので、これのaarを作成します
- google-play-services_lib_froyo_rev12
//他のプロジェクトからコピーしてくるもの gradle wrapper gradle-wrapper.properties gradlew gradlew.bat local.properties // 新規作成するもの //library project用の build.gradle (ADT export gradle) build.gradle
gradlew assembleDebug
で google-play-services_lib_froyo_rev12-debug.aar を作成します。
新規作成するもの
- init.gradle
マルチプロジェクトのroot/build.gradle をコピーしてきてファイル名を変更します
https://gist.github.com/kimukou/2d4faac29187b677c5cb1d6a19606d35#file-init-gradle
- build-gradle
ADTのexport gradleで生成されるbuild.gradleに下記を追加するイメージになります
- buildscript {} DSL は動かす直下のbuild.gradleに必要なので追記
- 事前に準備するもの で作成したaar を libs_aarにコピー
https://gist.github.com/kimukou/2d4faac29187b677c5cb1d6a19606d35#file-build-gradle
追記検証的なこと
DefaultManifestParser
いつの間にかでていた 2.1.3 で DefaultManifestParserのクラスが最新化されていた*1*2
ribbonizer plugin の利用に関して
G様の AS 2.2以降のpluginの作りからしてそうなんですけど、
本来のベキ論からいうと
- 理想
- sourceSets.main.res の参照位置情報からファイル操作をすべき
- 現実
- src/main/res の固定パスに有るはずという形でファイル処理が行われている
- G様のInstantRunのpluginとかもベタ書きなので動かない*3
apply plugin: 'com.github.gfx.ribbonizer'
のpluginも同じように、
- AndroidManifest.xml
<application android:hardwareAccelerated="true" android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" android:name="hoge.fuga.MaiuApplication" >
のandroid:icon を src/main/res 配下から探しに行く という作りになっています。
従って、この位置にandroid:icon リソースのファイルを置いておかないとエラーになります
- ファイルを下記の位置にフォルダを作ってコピーしておく
src main/res/drawable ic_launcher.png
ここらへんは、検索時に重複リソースとして引っかかってしまう*4 ので
検索indexのexclude 対象にしないと駄目な感じになります
Fabric に関して
src/main/AndroidManifest.xml
があれば確かに動きました。
- pathの決め打ち=>ファイルが見つからない エラー
かと。その位置のAndroidManifest.xml の meta記述をチェック をしているのは確認してます。
ADT上のlayout preview
autoとwearのエミュイメージが入っていると悪さする。 というか ADT plugin内に入ってる cvc-complex-type.2.4.d が更新されてないからなんだよな。。
cd $ANDROID_HOME/sdk/system-images/android-24/android-wear/armeabi-v7a sed '/d:skin/d' devices.xml > devices2.xml mv devices.xml _devices.xml mv devices2.xml devices.xml
とすれば、一応OK。でこの向こうにしたタグって何に使われているかというと
エミュレータの外側の枠のSkinなんですよね。無効にしても特に問題はなし*5
全文
微妙なんですが、全文載せておきます
ADT_compatible_gradle_2017_07_20
自分メモ(AS3.0 Canary7)
android studio 3.0 canary7
— close_yutori (@kimukou2628) 2017年7月19日
多分既存だけど、
AS二枚開いてる状態で
GradleSyncが成功してないプロジェクトに対して
IDE間文字列コピーが出来ないのは殺意覚えるかな~
(build.gradleがロックかかってしまう
Macなのにファイル掴んでて、編集できた??とおもったら
[不正な操作をされたのでreloadします] と初期化されたりとかorz
TLメモ(AS3.0 Canary7)
Android Studio 3 Canary Alpha6でビルドしたアプリがOS4系で起動できなくなってて、Alpha7にアップデートしたら治った
— 佐々木シンイチ (@s17er) 2017年7月19日
Gist で公開してる build.gradle のボイラープレートを Android Studio 3.0 時代に合わせてアップデートしました。ついに desugar / Kotlin 前提に。https://t.co/YOKMI2vwIj
— Ryutaro Miyashita (@ryugoo_) 2017年7月17日