LoginSignup
9
12

More than 5 years have passed since last update.

Android Studioを2.3から3.0へ移行する

Last updated at Posted at 2017-12-06

はじめに

Android Studio 3.0 がリリースされました。
ということで、Android Studioを2.3から3.0に移行しました。

手順

1. Android Studioのアップデート

Android Studio -> Check for Updates...からアップデート

2. Gradleのアップデート

Gradleを最新の 4.1 にアップデート

gradle/wrapper/gradle-wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip

3. Android Plugin for Gradleのアップデート

Googleから提供されたmavenリポジトリを使うようにもする

build.gradle
buildscript {
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.1'
    }
}
allprojects {
    repositories {
        google()
    }
}

4. SDK Build Toolsのアップデートのアップデート

app/build.gradle
android {
    buildToolsVersion '26.0.2'
}

5. Flavor Dimensionsの設定

Android Studio 3.0 から、すべての Flavor に対して、Flavor Dimensions の設定が必須

app/build.gradle
android {
    flavorDimensions "source"
    productFlavors {
        free {
            dimension "source"
        }
    }
}

Flavor Dimensionsを設定していなかったら、以下のようなエラーになる

Error:All flavors must now belong to a named flavor dimension. Learn more at https://d.android.com/r/tools/flavorDimensions-missing-error-message.html

6. Dependencyの設定

Android Studio 3.0 から、compileは非推奨で、その代わりにimplementationapiを使うことが推奨されている
implementationapiの違いはここに詳しく書いているhttps://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html?utm_source=android-studio#new_configurations

また、providedcompileOnlyに、apkruntimeOnlyを使うことも推奨されている

app/build.gradle
// before
dependencies {
    compile 'com.xxx.yyy:zzz:1.0.0'
    freeCompile 'com.xxx.zzz:yyy:1.0.0'
}
app/build.gradle
// after
dependencies {
    implementation 'com.xxx.yyy:zzz:1.0.0'
    freeImplementation 'com.xxx.zzz:yyy:1.0.0'
}

7. その他行ったこと

Retrolambda

ビルドしたときに以下のような警告

Warning:One of the plugins you are using supports Java 8 language features. To try the support built into the Android plugin, remove the following from your build.gradle:
apply plugin: 'me.tatarka.retrolambda'
To learn more, go to https://d.android.com/r/tools/java-8-support-message.html

Android Studio 3.0から、Java8記法がサポートされて、Retrolambdaが不要になったので、RetrolambdaをDependencyから削除

Error:Error converting bytecode to dex

ビルドしたときに以下のようなエラー

Information:Gradle tasks [:app:assembleDebug]
Error:Error converting bytecode to dex:

プロジェクトをクリーンしたら直りました

FATAL EXCEPTION: android.view.InflateException: Binary XML file line #0:

特定の画面に遷移したときにアプリが落ちて、以下のようなエラー

FATAL EXCEPTION: android.view.InflateException: Binary XML file line #0:

Android Studio 3.0 から、Android Asset Packaging Tool 2.0 (AAPT2) を使ったリソース処理がデフォルト動作となったらしい
これを無効にしたいので、以下の追記をした

gradle.properties
android.enableAapt2=false

APKの出力先が変わった

Flavor Dimensionsの設定をしたことで、APKの出力先が変わり、CI環境でエラーとなった
APKの出力先が
/app/build/outputs/apk/[flavor]/[buildType]/app-[flavor]-[buildType].apkに変わっていました

追記

Android Studioを3.1に上げた記事も書きました。

参考

9
12
0

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
9
12