他にこうしたほうがいいとか、この設定も必要だったとか、この設定はいらないとかあればコメントかTwitterなどどこでもいいので教えていただけると嬉しいです。
Gradle Pluginのアップデート
- classpath 'com.android.tools.build:gradle:3.0.1'
+ classpath 'com.android.tools.build:gradle:3.1.0'
Gradle WrapperとbuildToolsVersionを必要に応じてアップデート
Android Gradle Plugin 3.1にともなう環境のアップデートです(コメントありがとうございました)
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
android {
buildToolsVersion '27.0.3'
最新のビルド環境にする
+android.enableD8.desugaring=true
+android.databinding.enableV2=true
新しいD8コンパイラを使いたい場合、android.enableD8フラグはデフォルトで有効であるため、必要ありません。
no android.enableD8 flag, or if it does ensure that it is set to true.
コメントいただいたのですがandroid.databinding.enableV2とandroid.enableD8.desugaringはまだpreviewとも取れる記載があるので、利用する場合は注意してください。 (コメントありがとうございました)
You can preview a new incremental compiler for your data binding classes
In-process desugaring in D8 (preview)
DataBindingを使っているプロジェクト
databinding.enableV2
でincludeタグで使っているDataBindingがNullableじゃなくなるので!!を消します。(ビルドのログの中で警告が出るので、それで場所がわかります)
ほかNullableになっているところを!!を追加を行ったりします。
またObservableFieldを使っているプロジェクトでは以下のように初期化しているとクラッシュするので気をつけましょう。ObservableFieldに別の引数ありの別のコンストラクタが生えていて、そちらが使われるため、クラッシュします。
×
val value:ObservableField<Type?> = ObservableField(null)
普通にコンストラクタの引数をなくせば大丈夫です。
○
val value:ObservableField<Type?> = ObservableField()
.idea/codeStyleSettings.xml
があるプロジェクトのマイグレーション
Android Studio 3.0.1まではコードスタイルの設定の置き場所が.idea/codeStyleSettings.xml
になっていましたが、3.1からは.idea/codeStyles/codeStyleConfig.xml
と.idea/codeStyles/Project.xml
に分かれました。
マイグレーション方法としては3.0のプロジェクトを3.1のAndroid Studioで開くことで自動的に2つのファイルが作られます。
どうやら.idea/codeStyles/codeStyleConfig.xml
がどのコードスタイルを使うかの設定が書かれており
<component name="ProjectCodeStyleConfiguration">
<state>
<option name="USE_PER_PROJECT_SETTINGS" value="true" />
</state>
</component>
.idea/codeStyles/Project.xml
にはプロジェクトのコードスタイルが入るようになっています。
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<option name="USE_SAME_INDENTS" value="true" />
.gitignoreを以下のようにしました
-!.idea/codeStyleSettings.xml
+!.idea/codeStyles/*