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

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.9.0 に設定しています。

KotlinGroovy
plugins {
    id("com.android.application") version "8.9.0" apply false
    id("com.android.library") version "8.9.0" apply false
    id("org.jetbrains.kotlin.android") version "2.1.10" apply false
}
plugins {
    id 'com.android.application' version '8.9.0' apply false
    id 'com.android.library' version '8.9.0' apply false
    id 'org.jetbrains.kotlin.android' version '2.1.10' apply false
}

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

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

Gradle のアップデート

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

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

プラグインのバージョン必要な最小 Gradle バージョン
8.98.11.1
8.88.10.2
8.78.9
8.68.7
8.58.7
8.48.6
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] メニューで指定するか、コマンドラインを使用して Gradle のバージョンを更新します。推奨される方法は、gradlew スクリプトを更新する Gradle ラッパー コマンドライン ツールを使用することです。次の例では、Gradle Wrapper を使用して Gradle のバージョンを 8.9 に設定しています。Gradle と Gradle Wrapper の両方をアップグレードするには、このコマンドを2 回実行する必要があります(詳細については、Gradle Wrapper のアップグレードをご覧ください)。

gradle wrapper --gradle-version 8.9

ただし、AGP を更新したばかりで、現在の Gradle バージョンに準拠していない場合など、失敗することもあります。この場合、gradle/wrapper/gradle-wrapper.properties ファイルの Gradle 配布リファレンスを編集する必要があります。次の例では、gradle-wrapper.properties ファイルで Gradle のバージョンを 8.9 に設定しています。

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

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

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

Android Studio バージョン 必要な AGP バージョン
Meerkat | 2024.3.1 3.2 ~ 8.9
Ladybug Feature Drop | 2024.2.2 3.2-8.8
Ladybug | 2024.2.1 3.2-8.7
Koala Feature Drop | 2024.1.2 3.2 ~ 8.6
Koala | 2024.1.1 3.2 ~ 8.5
Jellyfish | 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
Android Studio バージョン 必要な AGP バージョン
Electric Eel | 2022.1.1 3.2-7.4
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 の最小バージョン
Baklava プレビュー Meerkat | 2024.3.1 8.9.0
35 Koala Feature Drop | 2024.2.1 8.6.0
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.9 でサポートされている最大 API レベルは API レベル 35 です。その他の互換性情報は次のとおりです。

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

修正された問題

Android Gradle プラグイン 8.9.0

修正された問題
Android Gradle プラグイン
ディスク容量が不足して GMD セットアップ タスクが失敗した場合に、対処可能なエラー メッセージを表示
com.android.settings プラグインが targetSdk を認識しない
役に立たないエラー「compileSdkVersion が指定されていません。build.gradle に追加してください」
[ビルド] メニューに [クリーンビルド] が表示されない
AGP の組み込み Kotlin サポートで Kotlin stdlib の依存関係を自動的に追加できるようにする
組み込みの Kotlin サポートを処理するように shouldConfigureKotlinPlatformAttribute を更新
「checkTestedAppObfuscationRelease」のエラー メッセージに Kotlin Gradle 構文を追加
未解決の依存関係を改善できる場合の、Fused Library エラー
gradle.properties のシステム プロパティが、別のプロセスで R8 Gradle ワーカーに渡されない
BuiltArtifact.outputFile を File 型に変更
統合ライブラリに名前空間を指定しない場合、適切なエラー メッセージが表示されない
AGP 7.1.0-alpha08 の lint オプションで stdout が許可されない
Android Gradle プラグイン: バリアントがソースセット名を公開する必要がある
構成キャッシュが TERM 環境変数の設定に脆弱
統計情報が有効になっている場合に AndroidComponentsExtension.addSourceSetConfigurations が破損する
初期化スクリプト「C:\Users\mypc\AppData\Local\Temp\ijresolvers2.gradle」の行: 162
統計情報が有効になっている場合に AndroidComponentsExtension.addSourceSetConfigurations が破損する
Dexer(D8)
java.lang.VerifyError: 検証ツールがクラスを拒否しました: [0x430] copy1 v2<-v264 type=Undefined cat=3
lint
Lint Gradle チェックで lint がクラッシュする
lint スタックトレース内に例外メッセージがない状態で、lint が InstantiationException で失敗する
android.permission.SCHEDULE_EXACT_ALARM 権限はシステムアプリにのみ付与されるという lint チェックの誤検出
StringFormatInvalid チェックを Compose の stringResource メソッドに適用する
RequiresFeature アノテーションが Kotlin ファイルで機能しない
kotlin android.os.Handler removeCallbacks Runnable
シフトを使用して定数を使用するのではなく、定義で WrongConstant リントが検出される
WrongConstant lint が 2 回表示される
サポートされていない Java nio API を使用している API 26 未満のランタイム例外(lint エラーなし)
テストの非公開ヘルパー メソッドであっても、Lint が RequiresApi の使用を禁止する
Android Studio で .hasRoute(Route::class) を使用すると、K2 モードで RestrictedApi 警告がスローされる
Lint が、テストの @RequiresExtension を @SdkSuppress に置き換えることを提案しますが、これは SDK 拡張機能をサポートしていません
fitSystemWindows で使用される FrameLayout が、カスタム パディングを必要とする子 RelativeLayout をラップしているときに、Lint が不要なネストされたレイアウトを誤って報告します。
CoarseFineLocation lint ルールで maxSdkVersion 属性が考慮されない
lint 8.7.3 で AppLinkSplitToWebAndCustom が UnknownIssue になる
「\\ " で lint チェックの StringEscapeDetector がクラッシュする
シール インターフェースに対する「@Parcelize」アノテーションに対する lint 警告が誤っている
AS 2024.3.1.4 で、Kotlin テキストの編集中に断続的にハングします。
lint の統合
アプリバンドルをビルドするときに lintVitalRelease が自動的に実行されない
圧縮ツール(R8)
AGP 8.8 にアップグレードした後、Gson proguard が正しく動作しない
java.lang.VerifyError: 検証ツールがクラスを拒否
AGP 8.10.0-alpha04 に含まれる R8 で圧縮すると Leanback がクラッシュする