Android Gradle Plugin 8.7 リリースノート

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

Kotlin

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

Groovy

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

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

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

Gradle のアップデート

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

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

プラグインのバージョン必要な最小 Gradle バージョン
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.7 に設定しています。Gradle と Gradle Wrapper の両方をアップグレードするには、このコマンドを2 回実行する必要があります(詳細については、Gradle Wrapper のアップグレードをご覧ください)。

gradle wrapper --gradle-version 8.7

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

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

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

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

Android Studio バージョン 必要な AGP バージョン
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.6 でサポートされている最大 API レベルは API レベル 34 です。その他の互換性情報は次のとおりです。

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

lint の動作の変更

Android Gradle プラグイン 8.7.0-alpha08 以降では、Gradle を使用して lint を実行するときに LintError がある場合、lint 分析タスクから例外がスローされます。この変更により、発生頻度の低いエラーがビルドキャッシュにキャッシュに保存されなくなります。

残念ながら、この変更により、lint ベースライン ファイルに実際の LintError インスタンスがあるプロジェクトのビルドが中断されます。エラー メッセージには、問題の原因となっている lint チェックに関する情報が含まれています。対応するライブラリの依存関係を更新すると、問題が解決することがあります。解決しない場合は、ライブラリ作成者が修正するまで、問題のある lint チェックを無効にできます。

修正された問題

Android Gradle プラグイン 8.7.0

修正された問題
Android Gradle プラグイン
AGP は、まもなくリリースされる API 35 をサポートしていることを宣言する必要があります
AGP 8.5: 多くの「mergeDebugResources」タスクが実行され、ビルドが遅くなる
ndk 27 を AGP のデフォルトの NDK にします。
AGP は、まもなくリリースされる API 35 をサポートしていることを宣言する必要があります
AGP は、まもなくリリースされる API 35 をサポートしていることを宣言する必要があります
Android lint の実行が NoSuchFileException で失敗する
BuildType#initWith がポストプロセッシング ブロックをコピーするが、ProGuard 構成が適用されない
foregroundServiceType タグの統合ができない
Android lint の実行が NoSuchFileException で失敗する
lint
Lint で ViewGroup として使用されている無効なオブジェクトを確認する
ホストが null の URI で「android:host がありません」
8.7.0-alpha04 で導入された lint チェックと KtAnalysisSessionProvider の非互換
Kotlin で PackageManager.ResolveInfoFlags.of を使用すると「誤検出」の WrongConstant が発生する

Android Gradle プラグイン 8.7.1

修正された問題
Android Gradle プラグイン
agp のドキュメントに多くの TBD がある
lint
AGP 8.6.1: リグレッション - Kotlin の @LongDef 内で [Int].toLong() を使用すると、WrongConstant lint エラーが発生する
http または https のインテント フィルタ スキームを設定するときに「少なくとも 1 つのホストを指定する必要があります」という lint エラーが発生する

Android Gradle プラグイン 8.7.2

修正された問題
lint
AGP 8.7.0 - NavOptionsBuilder.popUpTo で RestrictedApi の lint が誤検出される
圧縮ツール(R8)
[R8 8.6.27] メソッドの実装を「throw null」に置き換えました
デフォルトの Android ProGuard ファイルが、現在のバージョンの R8 で使用すると警告をスローする
MissingStartupProfileItemsDiagnostic で、メッセージが大きすぎると Gradle クライアントがメモリ不足エラーでクラッシュする

Android Gradle プラグイン 8.7.3

修正された問題
lint
lint の実行時に分析 API メソッドの警告が多数欠落する
android.permission.SCHEDULE_EXACT_ALARM 権限はシステムアプリにのみ付与されるという lint チェックの誤検出