Android Studio Arctic Fox 正式リリース! Android プロジェクトの更新方法

皆様こんにちは、医療ユニット開発の山口です。
最近コロナワクチン2回目を打ってきました。38度超えの発熱よりも関節痛併発で首が爆裂に痛くなったほうがヤバかったです。
いやぁ、首がもげるかと思いました・・・すごいですね、モデルナ。

今回は 7 月末にリリースされた Android Studio の最新バージョン Arctic Fox | 2020.3.1 についての記事になります。

Android Studio Arctic Fox | 2020.3.1 概要

Android Studio Arctic Fox | 2020.3.1 は 2021 年 7 月 29 日に正式リリースされました。*1
本来 4.3 としてリリースされるものでしたが、今回のリリースにてバージョニングが一新されました。
Android Studio の基となる IDE である IntelliJ IDEA *2 との関連性をより強調するためだそうです。

バージョニングは以下のフォーマットに改められます。

[Year of IntelliJ Version].[IntelliJ major version].[Studio major version].[Studio minor/patch version]

各バージョニングの意味は以下です。

  • Year of IntelliJ Version ... IntellIj プラットフォームのメジャーリリースした年度
  • IntelliJ major version ... IntellIj プラットフォームのメジャーバージョン
  • Studio major version ... Android Studio のメジャーバージョン、1 から始まりメジャーリリースごとに 1 ずつ増える
  • Studio minor/patch version ... Android Studio のマイナーバージョン or パッチバージョン

また、今回から Android Studio メジャーリリースバージョンごとに動物名のコードネームをアルファベット順につけていくようです。
(Android Q からお菓子のコードネームが廃止になったのに、なぜか開発環境の Android Studio で動物名として復活。)
なお、初回のコードネーム Arctic Fox はホッキョクギツネです。
Android Studio 起動画面では、可愛らしいホッキョクギツネさんがお出迎えしてくれるようになりました。

f:id:optim-tech:20210819094802p:plain

既存プロジェクトの Gradle 更新方法

ルートディレクトリの build.gradle 更新

まずは Android Gradle プラグイン (AGP) を最新のものにしましょう。
前バージョン Android Studio 4.2.2 までは AGP のバージョニングは Android Studio 自体のバージョンと同じでしたが、今回の Arctic Fox からは AGP もバージョン一新しており、なんと 7.0.0 に飛躍します。*3 (Meven レポジトリを確認しても 4.2.2 から 7.0.0 に飛んでます。*4
これは基となる Gradle Build Tools のバージョン番号との関連性を強調するためだそうです。
前バージョンのノリで、旧バージョニング 4.3.0 にして Sync してもうまくいかず、5 系や 6 系すっ飛ばしてのいきなり 7.0.0 で少し嵌りました。

7.0.0 上げてSync すると今度は Minimum supported Gradle version is 7.0.2. Current version is 6.7.1. のようなエラーがでます。
これは単純に AGP 7.0.0 には Gradle 7.0.2 以上が必要なためです。
案内に従って Change Gradle version in Gradle wrapper to 7.0.2 and re-import project を選択すれば、自動的に gradle-wrapper.properties が更新された後に Sync されます。

また、Arctic Fox の IDE プラグイン内にバンドルされた Kotlin バージョンは 1.5.21 になります。
build.gradle で指定している Kotlin バージョンとずれていると Warning 対象になるため、Kotlin を導入している場合はちゃんと更新しましょう。

buildScript {
    ext.kotlin_version = "1.5.21"
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath "com.android.tools.build:gradle:7.0.0"
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

各モジュールごとの build.gradle 更新

AGP 7.0.0 では SDK Build Tools 30.0.2 以上が必要であり、buildToolsVersion を明示的に指定している場合はバージョンを更新しましょう。*5
このパラメータは指定なしでも動作することが可能で、この場合プラグインで指定された Build Tools のデフォルトバージョンが適用されます。
SDK Manager から最新バージョンがダウンロードされているか、この機会に今一度確認するとよいでしょう。

また Arctic Fox からは、Android プロジェクトで Java 11 までのソースコードをコンパイルできるようになりました。*6
前メジャーバージョン Android Studio 4.2 では、Android Studio 自体にバンドルされている JDK のみ 11 に更新されており、ちょっと中途半端な JDK 11 移行状態でした。*7
しかし今回のバージョンでは、Java 11 ソースコンパイルが可能になったり、AGP 7.0.0 の実行要件が JDK 11 が必要になったり *8 等々、完全に JDK 11 に移行になったようです。
対応は単純で、compileSdkVersion を 30 に設定して、compileOptions の Java ターゲットを 11 にすればよいです。
Kotlin を導入している場合は kotlinOptions の設定もお忘れなく。

android {
    buildToolsVersion "30.0.2"
    compileSdkVersion 30

    ....

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_11
        targetCompatibility JavaVersion.VERSION_11
    }
    kotlinOptions {
        jvmTarget = "11"
    }
}

その他

Android プロジェクトの build.gradle の設定は以上ですが、CI でビルドを回している場合は、別途対応が必要になってくるかもしれません。
例えば CI 環境でビルドマシンを連携している場合は、 Android Studio のビルド環境を単純に上げるだけでなく、Build Tools バージョンが要件を満たしているか SDK Manager から確認が必要です。
また、前回の CI/CD についての記事 でも軽く言及しましたが、GitHub Actions で GitHub のホストランナーを使用しているならば actions/setup-java のバージョン指定を 11 に、GitLab CI/CD の Shared Runner を使用しているならば Docker image を JDK 11 に等々、適宜 JDK 11 に更新しましょう。

まとめ

Android Studio が一新されたので、既存プロジェクトの更新の手間が気になっていたのですが、思っていたよりはサクサクいけました。
今回のリリースでもっとも影響が大きいのは JDK 11 に完全移行したことがかなと個人的には思っています。
Arctic Fox 移行後にアプリの機能が一通り動くかチェックしたほうがよさそうですね。

その他にも Arctic Fox では、単体テストで Gradle テストランナーが使用されるようになったり、新しい Background Task Inspector が追加されていたり、Database Inspector が更新されたり等々、多くの機能が追加されています。
各プロジェクトの対応状況に応じて適宜適用するとよいでしょう。
(ちなみに私はテストランナーを試しました。あくまで個人の感覚ですが以前よりテスト時間が短くなったように感じます。)

なお、プレビュー版には既に時期バージョン Bumblebee | 2021.1.1 が上がっています。
プレビュー版は安定版と平行してインストール可能なので *9、気になる方は一足先にお試しで使ってみるとよいかもしれませんね。




オンライン診療ポケットドクターはお手持ちのスマホの AppStore もしくは GooglePlay から無料でダウンロードすることが可能です。

オプティムでは共に開発を行うエンジニアを募集しています。