LoginSignup
74
48

More than 5 years have passed since last update.

Android Studio 3.0から3.1へのマイグレーション

Last updated at Posted at 2018-03-27

他にこうしたほうがいいとか、この設定も必要だったとか、この設定はいらないとかあればコメントかTwitterなどどこでもいいので教えていただけると嬉しいです。

Gradle Pluginのアップデート

build.gradle
-        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にともなう環境のアップデートです(コメントありがとうございました)

gradle-wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
build.gradle
 android {
    buildToolsVersion '27.0.3'

最新のビルド環境にする

gradle.properties
+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)

image.png

image.png

普通にコンストラクタの引数をなくせば大丈夫です。

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/*
74
48
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
74
48