Android Gradle プラグイン 8.3 リリースノート

JCenter リポジトリは、2021 年 3 月 31 日に読み取り専用になりました。詳細については、JCenter サービスの更新をご覧ください。

Android Studio ビルドシステムは Gradle をベースにしており、Android Gradle プラグインは Android アプリのビルドに役立つ複数の機能を追加します。通常、Android Gradle プラグイン(AGP)は Android Studio のロックステップで更新されますが、プラグイン(および Gradle システムの残りの部分)は Android Studio から独立して実行され、個別に更新できます。

このページでは、Gradle ツールを最新の状態に保つ方法と、最近のアップデートの内容について説明します。過去のバージョンの Android Gradle プラグインのリリースノートについては、過去のリリースノートをご覧ください。

このバージョンの Android Gradle プラグインで修正された要素を確認するには、クローズされた問題をご覧ください。

Android Gradle プラグインの今後の互換性を破る変更の概要については、 Android Gradle プラグインのロードマップをご覧ください。

Gradle で Android ビルドを設定する方法の詳細については、下記のページをご覧ください。

Gradle ビルドシステムの詳細については、Gradle のユーザーガイドをご覧ください。

Android Gradle プラグインのアップデート

Android Studio をアップデートすると、Android Gradle プラグインを利用可能な最新バージョンに自動的にアップデートするように促すメッセージが表示されることがあります。アップデートに同意するか、プロジェクトのビルド要件に基づいて手動でバージョンを指定するかを選択できます。

プラグインのバージョンは、Android Studio の [File] > [Project Structure] > [Project] メニュー、または最上位の build.gradle.kts ファイルで指定できます。プラグインのバージョンは、その Android Studio プロジェクトでビルドされたすべてのモジュールに適用されます。次の例では、build.gradle.kts ファイルからプラグインをバージョン 8.3.0 に設定しています。

Kotlin

plugins {
    id("com.android.application") version "8.3.0" apply false
    id("com.android.library") version "8.3.0" apply false
    id("org.jetbrains.kotlin.android") version "1.9.23" apply false
}

Groovy

plugins {
    id 'com.android.application' version '8.3.0' apply false
    id 'com.android.library' version '8.3.0' apply false
    id 'org.jetbrains.kotlin.android' version '1.9.23' apply false
}

注意: バージョン番号で動的依存関係('com.android.tools.build:gradle:8.3.+' など)を使用しないでください。この機能を使用すると、予期しないバージョンのアップデートが発生し、バージョンの相違を解決するのが難しくなる可能性があります。

指定したプラグイン バージョンがダウンロードされていない場合は、次回プロジェクトをビルドするときに Gradle がダウンロードします。または、Android Studio のメニューバーで [File] > [Sync Project with Gradle Files] をクリックします。

Gradle のアップデート

Android Studio をアップデートすると、Gradle を利用可能な最新バージョンにアップデートするように促すメッセージが表示されることもあります。アップデートに同意するか、プロジェクトのビルド要件に基づいて手動でバージョンを指定するかを選択できます。

次の表に、Android Gradle プラグインの各バージョンに必要な Gradle のバージョンを示します。最高のパフォーマンスを得るには、Gradle とプラグインの両方について、最新バージョンを使用してください。

プラグインのバージョン必要最小限の Gradle バージョン
8.4(アルファ版)8.6-RC-1
8.38.4
8.28.2
8.18.0
8.08.0
7.47.5

古いバージョン

プラグインのバージョン必要な Gradle のバージョン
7.37.4
7.27.3.3
7.17.2
7.07.0
4.2.0 以降6.7.1
4.1.0 以降6.5 以降
4.0.0 以降6.1.1 以降
3.6.0 - 3.6.45.6.4 以降
3.5.0 - 3.5.45.4.1 以降
3.4.0 - 3.4.35.1.1 以降
3.3.0 - 3.3.34.10.1 以降
3.2.0 - 3.2.14.6 以降
3.1.0 以降4.4 以降
3.0.0 以降4.1 以降
2.3.0 以降3.3 以降
2.1.3 - 2.2.32.14.1 - 3.5
2.0.0 - 2.1.22.10 - 2.13
1.5.02.2.1 - 2.13
1.2.0 - 1.3.12.2.1 - 2.9
1.0.0 - 1.1.32.2.1 - 2.3

Gradle のバージョンは、Android Studio の [File] > [Project Structure] > [Project] メニューで指定するか、コマンドラインを使用して更新できます。おすすめの方法は、gradlew スクリプトを更新する Gradle ラッパー コマンドライン ツールを使用することです。次の例では、Gradle ラッパーを使用して Gradle のバージョンを 8.3 に設定しています。 なお、Gradle と Gradle ラッパー自体の両方をアップグレードする場合は、このコマンドを 2 回実行する必要があります(詳細については、Gradle ラッパーのアップグレードをご覧ください)。

gradle wrapper --gradle-version 8.3

ただし、AGP をアップデートしたばかりで現在の Gradle バージョンに準拠しなくなった場合などは、失敗する可能性があります。この場合は、gradle/wrapper/gradle-wrapper.properties ファイル内の Gradle ディストリビューション リファレンスを編集する必要があります。次の例では、gradle-wrapper.properties ファイルで Gradle のバージョンを 8.3 に設定しています。

...
distributionUrl = https\://services.gradle.org/distributions/gradle-8.3-bin.zip
...

Android Gradle プラグインと Android Studio の互換性

Android Studio ビルドシステムは Gradle をベースにしており、Android Gradle プラグイン(AGP)は Android アプリのビルドに役立つ複数の機能を追加します。次の表に、Android Studio の各バージョンに必要な AGP のバージョンを示します。

Android Studio バージョン 必要な AGP バージョン
クラゲ | 2023.3.1 3.2 ~ 8.4
Iguana | 2023.2.1 3.2-8.3
Hedgehog | 2023.1.1 3.2-8.2
Giraffe | 2022.3.1 3.2-8.1
Flamingo | 2022.2.1 3.2-8.0
Electric Eel | 2022.1.1 3.2-7.4

古いバージョン

Android Studio バージョン 必要な AGP バージョン
Dolphin | 2021.3.1 3.2-7.3
Chipmunk | 2021.2.1 3.2-7.2
Bumblebee | 2021.1.1 3.2-7.1
Arctic Fox | 2020.3.1 3.1-7.0

Android Gradle プラグインの新機能については、Android Gradle プラグインのリリースノートをご覧ください。

Android API レベルをサポートするツールの最小バージョン

特定の API レベルをサポートする Android Studio と AGP には最小バージョンがあります。プロジェクトの targetSdk または compileSdk で必要とされるバージョンよりも低いバージョンの Android Studio または AGP を使用すると、予期しない問題が発生する可能性があります。Android OS のプレビュー版をターゲットとするプロジェクトでは、最新プレビュー版の Android Studio と AGP の使用をおすすめします。Android Studio のプレビュー版を安定版と一緒にインストールできます。

Android Studio と AGP の最小バージョンは次のとおりです。

API レベル Android Studio の最小バージョン AGP の最小バージョン
VanillaIceCream のプレビュー クラゲ | 2023.3.1 8.4
34 Hedgehog | 2023.1.1 8.1.1
33 Flamingo | 2022.2.1 7.2

バージョニングの変更(2020 年 11 月)

基盤となる Gradle ビルドツールのバージョン番号により近い番号で管理できるよう、Android Gradle プラグイン(AGP)のバージョン番号の付け方を変更します。

主な変更点は次のとおりです。

  • AGP はセマンティック バージョニングを使用するようになり、互換性のない変更はメジャー リリースとして扱われます。

  • Gradle のメジャー リリースに合わせて、AGP のメジャー バージョンを年 1 回リリースします。

  • AGP 4.2 の次のリリースはバージョン 7.0 となり、Gradle のバージョンも 7.x にアップグレードする必要があります。AGP のメジャー リリースのたびに、基盤となる Gradle ツールのメジャー バージョン アップグレードが必要になります。

  • API はメジャー リリースの約 1 年前からサポート終了となり、それと同時に代替機能が利用可能になります。サポートが終了した API は、約 1 年後のメジャー アップデート時に削除されます。

互換性

Android Gradle プラグイン 8.3 がサポートする最大 API レベルは、API レベル 34 です。その他の互換性に関する情報:

最小バージョン デフォルトのバージョン Notes
Gradle 8.4 8.4 詳細については、Gradle のアップデートをご覧ください。
SDK Build Tools 34.0.0 34.0.0 SDK Build Tools をインストールまたは設定します。
NDK なし 25.1.8937393 別のバージョンの NDK をインストールまたは設定します。
JDK 17 17 詳細については、JDK バージョンの設定をご覧ください。

Android Gradle プラグイン 8.3 の新機能は次のとおりです。

パッチリリース

Android Studio Iguana と Android Gradle プラグイン 8.3 のパッチリリースを以下に示します。

Android Studio Iguana | 2023.2.1 パッチ 1 と AGP 8.3.1(2024 年 3 月)

このマイナー アップデートには、こちらのバグの修正が含まれています。

Gradle バージョン カタログのサポート

Android Studio は、TOML ベースの Gradle バージョン カタログをサポートしています。この機能により、依存関係を 1 か所で管理し、モジュールまたはプロジェクト間で依存関係を共有できます。Android Studio では、エディタの候補表示や [Project Structure] ダイアログとの統合により、バージョン カタログを簡単に構成できるようになりました。Gradle バージョン カタログを設定および構成する方法、またはビルドをバージョン カタログに移行する方法をご確認ください。

コード補完とナビゲーション

Android Studio では、TOML ファイル形式のバージョン カタログを編集する場合、またはバージョン カタログからビルドファイルに依存関係を追加する場合に、コード補完を利用できます。コード補完を使用するには、Ctrl+Space キー(macOS では command+Space キー)を押します。また、Ctrl+b(macOS では command+b)を押すと、アプリの build.gradle ファイル内の依存関係の参照からバージョン カタログ内の宣言されている場所にすばやく移動できます。

依存関係を追加する際のコード補完

[Project Structure] ダイアログとの統合

プロジェクトで、TOML ファイル形式で定義されたバージョン カタログを使用している場合は、Android Studio の [Project Structure] ダイアログの [Variables] ビュー([File] > [Project Structure] > [Variables])で、定義した変数を編集できます。バージョン カタログごとに、そのカタログの変数を一覧表示するプルダウンがあります。変数を編集するには、その値をクリックして上書きします。これらの変更を保存すると、それに応じて TOML ファイルが更新されます。

[Project Structure] ダイアログのバージョン カタログの変数

依存関係は、[Project Structure] ダイアログの [Dependencies] ビュー([File] > [Project Structure] > [Dependencies])で更新することもできます。[Project Structure] ダイアログを使用してバージョンを更新するには、編集するモジュールと依存関係に移動して、[Requested Version] フィールドを更新します。これらの変更を保存すると、それに応じて TOML ファイルが更新されます。依存関係のバージョンが変数を使用して定義されている場合、この方法でバージョンを直接更新すると、変数がハードコードされた値に置き換えられます。また、[Project Structure] ダイアログを使用するかどうかにかかわらず、ビルドファイルから依存関係を削除しても、バージョン カタログから依存関係は削除されません。

[Project Structure] ダイアログのバージョン カタログからの依存関係

既知の問題と制限事項

Android Studio での Gradle バージョン カタログのサポートに関する既知の問題と制限事項は次のとおりです。

  • Kotlin スクリプト ファイル内のプラグイン エイリアス宣言のハイライト表示中にエラーが発生しました。alias(libs.plugins.example) 形式のプラグイン宣言を追加すると、エディタによって libs の部分に赤の下線が追加されます。これは Gradle バージョン 8.0 以前における既知の問題であり、Gradle の今後のリリースで解決される予定です。

  • Android Studio は、TOML 形式のバージョン カタログのみをサポートしています。現在、Android Studio のコード補完、ナビゲーション、[Project Structure] ダイアログのサポートは、TOML ファイル形式で定義されたバージョン カタログでのみ使用できます。ただし、settings.gradle ファイルにバージョン カタログを直接追加し、その依存関係をプロジェクトで使用することもできます。

  • KTS ビルドファイルのナビゲーションはサポートされていません。Kotlin スクリプトを使用して作成されたビルドファイルでは、Ctrl+クリック(macOS では Command+クリック)を使用してバージョン カタログの依存関係定義に移動することはできません。

  • Firebase Assistant は、ビルド スクリプトに依存関係を直接追加します。Firebase Assistant は、バージョン カタログではなく、ビルド スクリプトに依存関係を直接追加します。

  • 「使用状況の検索」機能はサポートされていません。ビルドファイルが KTS と Groovy のどちらにあるかにかかわらず、他のビルドファイルのバージョン カタログ変数の使用状況の検索はまだサポートされていません。つまり、バージョン カタログの変数定義を Ctrl キーを押しながらクリック(macOS では command キーを押しながらクリック)しても、その変数が使用されているビルドファイルは作成されません。

  • Android Studio の [Project Structure] ダイアログでは、ルートの gradle フォルダ内にある複数のカタログ ファイルが表示されますが、複合ビルドのカタログは表示されません。たとえば、2 つのカタログ ファイル(1 つはアプリ用、もう 1 つは複合ビルド用)がある場合、[Project Structure] ダイアログにはアプリカタログ ファイルのみが表示されます。複合ビルドを使用することもできますが、その TOML ファイルを直接編集する必要があります。

SDK に関する追加の分析情報: ポリシーに関する問題

Android Studio では、Google Play SDK Index で Play ポリシー違反がある公開 SDK について、build.gradle.kts ファイルと build.gradle ファイル、[Project Structure] ダイアログに lint 警告が表示されます。Google Play ポリシーに違反する依存関係は、今後 Google Play Console に公開できなくなる可能性があるため、更新する必要があります。ポリシー違反の警告は、Android Studio によって表示される古いバージョンの警告を補足するものです。

Android Studio の compileSdk バージョンのサポート

現在のバージョンの Android Studio でサポートされていない compileSdk がプロジェクトで使用されている場合、Android Studio は警告を表示します。可能であれば、プロジェクトで使用されている compileSdk をサポートするバージョンの Android Studio に移行することもおすすめします。Android Studio をアップグレードするには、AGP のアップグレードも必要になる場合があるので注意してください。プロジェクトで使用されている compileSdk が現在のバージョンの AGP でサポートされていない場合、[Build] ツール ウィンドウにも警告が表示されます。

lint の動作の変更

Android Gradle プラグイン 8.3.0-alpha02 以降では、モジュールで lint を実行すると、モジュールのメイン コンポーネントとテスト コンポーネントに対して別々の lint 分析タスクが実行されます。この変更は、パフォーマンスの向上を目的としています。以前の動作に戻すには、gradle.properties ファイルで android.experimental.lint.analysisPerComponent=false を設定します。

デフォルトでリソースの正確な圧縮

デフォルトでは、正確なリソース圧縮(resources.arsc ファイルから未使用のエントリが削除され、未使用のリソース ファイルが除外されます)がオンになっています。この圧縮を有効にすると、リソース テーブルが縮小され、参照された res フォルダ エントリのみが APK に含まれるようになります。

正確なリソース圧縮を無効にするには、プロジェクトの gradle.properties ファイルで android.enableNewResourceShrinker.preciseShrinkingfalse に設定します。