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 統合のアクセスを取り消すには、 [Applications] > [Authorized OAuth Apps] に移動し、 [JetBrains IDE Integration] トークンのアクセスを取り消します。
  • PAT のアクセスを取り消すには、 個人アクセス トークン に移動し、GitHub プラグイン用に発行されたトークンを削除します。デフォルトのトークン名は IntelliJ IDEA GitHub integration plugin ですが、 カスタム名を使用している場合があります。

トークンのアクセスを取り消したら、プラグインを再度設定して 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 に含まれます。つまり、コード縮小ツールは実行されません。

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

解決済みの問題

Android Gradle プラグイン 8.4.2

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

Android Gradle プラグイン 8.4.1

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

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 のインストール タスクが失敗する
AIDL コンパイルが IndexOutOfBoundsException で失敗する: Index 0 out of bounds for length 0
MergeJavaResourcesTask の増分入力処理の問題
AGP 8.3.0-alpha02 が、既知のセキュリティの脆弱性があるライブラリに依存している
選択したアクティビティ テンプレートには androidx.* 依存関係を持つプロジェクトが必要
AGP Upgrade Assistant が誤ってモジュールから consumerProguardFiles を削除する
AGP Upgrade Assistant が無限に読み込まれる
SourceDirectories#static が GenerateBuildConfig タスクに依存しないようにする
Compose プレビューで推移的な依存関係からクラスを解決できない
AGP 8.3 で zipApksFor タスクが中断される
AndroidX Desktop アーティファクトが Android APK にパッケージ化される
lint
lint テスト フレームワークの GradleModelMocker でライブラリ バージョンを設定できない
Lint K2 UAST: UCallableReferenceExpression が誤った qualifierType を報告する
オーバーロードされた関数で useK2Uast=true の場合に lint が誤検出する
[BuildTool/Lint] ChecksSdkIntAtLeast コンストラクタ プロパティ
lint の統合
lint が KMP 依存関係を明確にできない