Android Gradle プラグイン 8.7.0(2024 年 10 月)

Android Gradle プラグイン 8.7.0 はメジャー リリースで、さまざまな新機能や向上が組み込まれています。

互換性

Android Gradle プラグイン 8.7 でサポートされる最大 API レベルは API レベル 35 です。 その他の互換性情報は次のとおりです。

最小バージョン デフォルトのバージョン メモ
Gradle 8.9 8.9 詳しくは、Gradle のアップデートをご覧ください。
SDK Build Tools 34.0.0 34.0.0 SDK Build Tools をインストールまたは設定します
NDK なし 27.0.12077973 "インストールまたは設定します。"
JDK 17 17 詳しくは、JDK バージョンの設定をご覧ください。

lint の動作の変更点

Android Gradle プラグイン 8.7.0-alpha08 以降、Gradle を使用して lint を実行するときに LintError が発生すると、lint 分析タスクで例外がスローされます。 この変更により、まれに発生するエラーがビルド キャッシュにキャッシュされるのを防ぐことができます。

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

解決済みの問題

Android Gradle プラグイン 8.7.3

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

Android Gradle プラグイン 8.7.2

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

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.0

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