Android Gradle プラグイン 8.3.0(2024 年 2 月)

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

互換性

Android Gradle プラグイン 8.3 がサポートする最大 API レベルは、API レベル 34 です。その他の互換性に関する情報:

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

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

パッチリリース

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

Android Studio Iguana | 2023.2.1 パッチ 2 と AGP 8.3.2(2024 年 4 月)

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

Android Studio Iguana | 2023.2.1 パッチ 1 と AGP 8.3.1(2024 年 3 月)

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

Gradle バージョン カタログのサポート

Android Studio は、TOML ベースの Gradle バージョン カタログをサポートしています。この機能により、依存関係を 1 か所で管理し、モジュールまたはプロジェクト間で依存関係を共有できます。Android Studio では、エディタの候補表示や [Project Structure] ダイアログとの統合により、バージョン カタログを簡単に構成できるようになりました。Gradle バージョン カタログを設定および構成する方法、またはビルドをバージョン カタログに移行する方法をご確認ください。

コード補完とナビゲーション

Android Studio では、TOML ファイル形式のバージョン カタログを編集する場合、またはバージョン カタログからビルドファイルに依存関係を追加する場合に、コード補完を利用できます。コード補完を使用するには、Ctrl+Space キー(macOS では command+Space キー)を押します。また、Ctrl+b(macOS では command+b)を押すと、アプリの build.gradle ファイル内の依存関係の参照からバージョン カタログ内の宣言されている場所にすばやく移動できます。

依存関係を追加する際のコード補完

[Project Structure] ダイアログとの統合

プロジェクトで、TOML ファイル形式で定義されたバージョン カタログを使用している場合は、Android Studio の [Project Structure] ダイアログの [Variables] ビュー([File] > [Project Structure] > [Variables])で、定義した変数を編集できます。バージョン カタログごとに、そのカタログの変数を一覧表示するプルダウンがあります。変数を編集するには、その値をクリックして上書きします。これらの変更を保存すると、それに応じて TOML ファイルが更新されます。

[Project Structure] ダイアログのバージョン カタログの変数

依存関係は、[Project Structure] ダイアログの [Dependencies] ビュー([File] > [Project Structure] > [Dependencies])で更新することもできます。[Project Structure] ダイアログを使用してバージョンを更新するには、編集するモジュールと依存関係に移動して、[Requested Version] フィールドを更新します。これらの変更を保存すると、それに応じて TOML ファイルが更新されます。依存関係のバージョンが変数を使用して定義されている場合、この方法でバージョンを直接更新すると、変数がハードコードされた値に置き換えられます。また、[Project Structure] ダイアログを使用するかどうかにかかわらず、ビルドファイルから依存関係を削除しても、バージョン カタログから依存関係は削除されません。

[Project Structure] ダイアログのバージョン カタログからの依存関係

既知の問題と制限事項

Android Studio での Gradle バージョン カタログのサポートに関する既知の問題と制限事項は次のとおりです。

  • Kotlin スクリプト ファイル内のプラグイン エイリアス宣言のハイライト表示中にエラーが発生しました。alias(libs.plugins.example) 形式のプラグイン宣言を追加すると、エディタによって libs の部分に赤の下線が追加されます。これは Gradle バージョン 8.0 以前における既知の問題であり、Gradle の今後のリリースで解決される予定です。

  • Android Studio は、TOML 形式のバージョン カタログのみをサポートしています。現在、Android Studio のコード補完、ナビゲーション、[Project Structure] ダイアログのサポートは、TOML ファイル形式で定義されたバージョン カタログでのみ使用できます。ただし、settings.gradle ファイルにバージョン カタログを直接追加し、その依存関係をプロジェクトで使用することもできます。

  • KTS ビルドファイルのナビゲーションはサポートされていません。Kotlin スクリプトを使用して作成されたビルドファイルでは、Ctrl+クリック(macOS では Command+クリック)を使用してバージョン カタログの依存関係定義に移動することはできません。

  • Firebase Assistant は、ビルド スクリプトに依存関係を直接追加します。Firebase Assistant は、バージョン カタログではなく、ビルド スクリプトに依存関係を直接追加します。

  • 「使用状況の検索」機能はサポートされていません。ビルドファイルが KTS と Groovy のどちらにあるかにかかわらず、他のビルドファイルのバージョン カタログ変数の使用状況の検索はまだサポートされていません。つまり、バージョン カタログの変数定義を Ctrl キーを押しながらクリック(macOS では command キーを押しながらクリック)しても、その変数が使用されているビルドファイルは作成されません。

  • Android Studio の [Project Structure] ダイアログでは、ルートの gradle フォルダ内にある複数のカタログ ファイルが表示されますが、複合ビルドのカタログは表示されません。たとえば、2 つのカタログ ファイル(1 つはアプリ用、もう 1 つは複合ビルド用)がある場合、[Project Structure] ダイアログにはアプリカタログ ファイルのみが表示されます。複合ビルドを使用することもできますが、その TOML ファイルを直接編集する必要があります。

SDK に関する追加の分析情報: ポリシーに関する問題

Android Studio では、Google Play SDK Index で Play ポリシー違反がある公開 SDK について、build.gradle.kts ファイルと build.gradle ファイル、[Project Structure] ダイアログに lint 警告が表示されます。Google Play ポリシーに違反する依存関係は、今後 Google Play Console に公開できなくなる可能性があるため、更新する必要があります。ポリシー違反の警告は、Android Studio によって表示される古いバージョンの警告を補足するものです。

Android Studio の compileSdk バージョンのサポート

現在のバージョンの Android Studio でサポートされていない compileSdk がプロジェクトで使用されている場合、Android Studio は警告を表示します。可能であれば、プロジェクトで使用されている compileSdk をサポートするバージョンの Android Studio に移行することもおすすめします。Android Studio をアップグレードするには、AGP のアップグレードも必要になる場合があるので注意してください。プロジェクトで使用されている compileSdk が現在のバージョンの AGP でサポートされていない場合、[Build] ツール ウィンドウにも警告が表示されます。

lint の動作の変更

Android Gradle プラグイン 8.3.0-alpha02 以降では、モジュールで lint を実行すると、モジュールのメイン コンポーネントとテスト コンポーネントに対して別々の lint 分析タスクが実行されます。この変更は、パフォーマンスの向上を目的としています。以前の動作に戻すには、gradle.properties ファイルで android.experimental.lint.analysisPerComponent=false を設定します。

デフォルトでリソースの正確な圧縮

デフォルトでは、正確なリソース圧縮(resources.arsc ファイルから未使用のエントリが削除され、未使用のリソース ファイルが除外されます)がオンになっています。この圧縮を有効にすると、リソース テーブルが縮小され、参照された res フォルダ エントリのみが APK に含まれるようになります。

正確なリソース圧縮を無効にするには、プロジェクトの gradle.properties ファイルで android.enableNewResourceShrinker.preciseShrinkingfalse に設定します。