Android Gradle プラグイン 8.4.0(2024 年 4 月)

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

互換性

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

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

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

パッチリリース

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

Android Studio Jellyfish | 2023.3.1 パッチ 2、AGP 8.4.2(2024 年 6 月)

重要なセキュリティ アップデート: Android Studio Iguana | 2023.2.1 以降で利用可能な GitHub プラグインセキュリティの脆弱性により、アクセス トークンが不正な第三者に漏洩する可能性があります。

修正: Jetbrains は IntelliJ プラットフォーム プロダクトの問題を解決し、Android Studio Jellyfish | 2023.3.1 パッチ 2(2023.3.1.20)で修正をリリースしました。

Stable チャンネルで Android Studio ビルドをすでに使用している場合は、[Help] > [Check for Updates](macOS では [Android Studio] > [Check for Updates])をクリックしてアップデートを入手できます。それ以外の場合は、最新の安定版ビルドをダウンロードします。

さらに、IDE で GitHub pull リクエスト機能を積極的に使用している場合は、プラグインで使用されている GitHub トークンをすべて取り消すことを強くおすすめします。プラグインは OAuth 統合または個人アクセス トークン(PAT)を使用できるため、両方を確認し、必要に応じて取り消してください。

  • OAuth 統合のアクセス権を取り消すには、[アプリケーション] > [承認済みの OAuth アプリ] に移動し、[JetBrains IDE Integration] トークンのアクセス権を取り消します。
  • PAT のアクセス権を取り消すには、[個人アクセス トークン] に移動し、GitHub プラグイン用に発行されたトークンを削除します。デフォルトのトークン名は IntelliJ IDEA GitHub 統合プラグインですが、カスタム名を使用している場合があります。

トークンのアクセス権を取り消した後、Git オペレーションなど、プラグインのすべての機能を再び使用できるようにするには、プラグインを再度設定する必要があります。

ご不便をおかけして申し訳ございません。コードとデータを保護するため、すべてのユーザーに直ちにアップデートしていただくようお願いいたします。

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

Android Studio Jellyfish | 2023.3.1 パッチ 1、AGP 8.4.1(2024 年 5 月)

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

ライブラリ クラスが圧縮される

Android Gradle プラグイン 8.4 以降、Android ライブラリ プロジェクトが圧縮されると、プロジェクト間の公開用に縮小されたプログラム クラスが公開されます。つまり、アプリが圧縮されたバージョンの Android ライブラリ サブプロジェクトに依存している場合、APK には圧縮された Android ライブラリ クラスが含まれます。APK にクラスがない場合は、ライブラリ保持ルールを調整する必要があります。

AAR をビルドして公開する場合、ライブラリが依存するローカル JAR は圧縮されずに AAR に含まれます。つまり、コード圧縮ツールは実行されません。

以前の動作に戻すには、gradle.properties ファイルで android.disableMinifyLocalDependenciesForLibraries を設定し、バグを報告します。AGP の今後のバージョンでは、このフラグが削除されます。

修正された問題

Android Gradle プラグイン 8.4.0

修正された問題
Android Gradle プラグイン
JavaCompile で「--release」オプションを使用できない理由のエラー メッセージを改善
@DoNotCacheByDefault を使用して MergeSourceSetFolders のキャッシュを無効にする
AGP 8.2.0 で JaCoCo バージョンを設定できない
DynamicFeatureBuildType に isDebuggable がない
圧縮ライブラリ クラスがプロジェクト間のコンシュームで正しくパブリッシュされない
生成ファイルを除外する Variant#sources API の提供
AGP モデルに java-platform プロジェクトの依存関係が含まれていない
ExtractAarTransform が、classes.jar を持たない aars で再現不可の classes.jar を作成する
ComposeOptions から sourceInformation を設定できるようにする
メッセージ android.bundle.DeviceSpec にフィールド sdk_runtime がない
compileOnlyApi のサポート
リソース処理が無効であるとライブラリ モジュールで R8 が失敗する
変換時にアーティファクト名を変更する機能の追加
sourceSets.androidMain.resources の srcDir としてタスクの出力を追加してもタスクの依存関係が作成されない
AndroidPluginVersion.toString() に先頭の 0 がない
Artifacts.add(FileSystemLocation) の制限を強化する必要がある
AGP 8.3.0-alpha11 で生成されるリリース APK が、android.content.res.Resources$NotFoundException で起動時にクラッシュする
動的機能を使用するプロジェクトで Android Gradle プラグイン 8.2.0 のインストール タスクが失敗する
IndexOutOfBoundsException: Index 0 out of bounds for length 0 で AIDL コンパイルが失敗する
MergeJavaResourcesTask の増分入力の処理に関する問題
AGP 8.3.0-alpha02 が既知のセキュリティの脆弱性を含むライブラリに依存している
選択したアクティビティ テンプレートには androidx.* 依存関係のあるプロジェクトが必要です
AGP Upgrade Assistant がモジュールから consumerProguardFiles を誤って削除する
AGP Upgrade Assistant が読み込まれ続ける
SourceDirectories#static は GenerateBuildConfig タスクに依存しない
Compose プレビューで推移的な依存関係のクラスを解決できない
AGP 8.3 で zipApksFor タスクが破損する
Android APK にパッケージ化された AndroidX Desktop アーティファクト
lint
lint テスト フレームワークの GradleModelMocker でライブラリ バージョンを設定できない
Lint K2 UAST: UCallableReferenceExpression が間違った qualifierType を報告する
重複関数で useK2Uast=true を使用すると lint が誤検出する
[BuildTool/Lint] ChecksSdkIntAtLeast コンストラクタ プロパティ
lint の統合
lint が KMP 依存関係の曖昧さを解消できない

Android Gradle プラグイン 8.4.1

修正された問題
Android Gradle プラグイン
JDK 21 で Java 8 ターゲットのサポートが非推奨になることに関する警告を抑制できるようにする
Dexer(D8)
java.lang.VerifyError: 検証ツールがクラスを拒否
難読化後に新しいバージョンの R8 形式の変換エラーが発生する
中間ビルドにスタブの完全なグローバル合成コンテンツが含まれていない可能性がある

Android Gradle プラグイン 8.4.2

修正された問題
Android Gradle プラグイン
AGP 8.4 により CI で GMD のダウンロードが中断される