Android Gradle プラグイン 8.0.0 はメジャー リリースで、 改善されています。
互換性
最小バージョン | デフォルトのバージョン | 備考 | |
---|---|---|---|
Gradle | 8.0 | 8.0 | 詳細については、Gradle のアップデートをご覧ください。 |
SDK Build Tools | 30.0.3 | 30.0.3 | SDK Build Tools をインストールまたは設定します。 |
NDK | なし | 25.1.8937393 | 別のバージョンの NDK をインストールまたは設定します。 |
JDK | 17 | 17 | 詳細については、JDK バージョンの設定をご覧ください。 |
パッチリリース
Android Gradle プラグイン 8.0 のパッチリリースを以下に示します。
Android Gradle プラグイン 8.0.2(2023 年 5 月)
AGP 8.0.2 で修正されたバグのリストについては、Android Studio 2022.2.1 のクローズされた問題をご覧ください。
Android Gradle プラグイン 8.0.1(2023 年 5 月)
このマイナー アップデートには、次のバグ修正が含まれています。
修正された問題 | |
---|---|
エラー: AGP 7.2.2 から 7.4.0 へのアップグレード後に「No VersionRequirement with the specific id in the table」と表示される
|
|
markTypeAsLive AGP 7.4.1 で R8 NullPointerException が発生する
|
|
[R8 4.0.53] Android 11 でのハードクラス検証の失敗
|
互換性を破る変更: モジュール レベルのビルド スクリプトで必要な名前空間
モジュール レベルの build.gradle.kts
ファイルで名前空間を設定する必要があります。
記述する必要があります。namespace
DSL プロパティは AGP 7.3 以降で使用できます。詳細については、名前空間を設定するをご覧ください。
名前空間 DSL に移行する場合は、次の点に注意してください。
- 以前のバージョンの AGP では、メインの名前空間またはアプリケーション ID からテスト名前空間を推測する際に、誤って推測されることがあります。AGP Upgrade Assistant は、
プロジェクトのメインの名前空間とテスト名前空間が
同じですアップグレードがブロックされている場合は、
testNamespace
を手動で変更し、それに応じてソースコードを変更する必要があります。 - テスト名前空間を変更すると、コードがコンパイル
インストルメンテーション テストは実行時に失敗します。これは、インストルメンテーション テストのソースコードが、
androidTest
ソースとアプリソースの両方で定義されているリソースを参照している場合に発生する可能性があります。
詳しくは、問題 #191813691 のコメント #19 をご覧ください。
互換性のない変更: ビルドオプションのデフォルト値
AGP 8.0 以降、これらのフラグのデフォルト値は ビルドのパフォーマンスを向上させることができます。これらの変更の一部をサポートするようにコードを調整する際にサポートが必要な場合は、AGP Upgrade Assistant([Tools] > [AGP Upgrade Assistant])を使用してください。Upgrade Assistant のガイドでは、 新しい動作に合わせてコードを更新するか、またはフラグを設定して 変更することもできます。
フラグ | 新しいデフォルト値 | 以前のデフォルト値 | 注 |
---|---|---|---|
android.defaults.buildfeatures.buildconfig |
false |
true |
AGP 8.0 では、デフォルトで BuildConfig は生成されません。このオプションは、必要に応じてプロジェクトで DSL を使用して指定する必要があります。 |
android.defaults.buildfeatures.aidl |
false |
true |
AGP 8.0 は、デフォルトでは AIDL のサポートを有効にしません。次を指定する必要があります。 このオプションは、必要なプロジェクトで DSL を使用して行います。このフラグは、 AGP 9.0 で削除される予定です。 |
android.defaults.buildfeatures.renderscript |
false |
true |
AGP 8.0 では、デフォルトで RenderScript のサポートは有効になっていません。必要なこと このオプションは、必要なプロジェクトで DSL を使用して指定します。このフラグは AGP 9.0 で削除される予定です。 |
android.nonFinalResIds |
true |
false |
AGP 8.0 では、デフォルトで final 以外のフィールドを持つ R クラスが生成されます。 |
android.nonTransitiveRClass |
true |
false |
AGP 8.0 が、定義されたリソースの R クラスを生成する
現在のモジュールのみに適用されます。 |
android.enableR8.fullMode |
true |
false |
AGP 8.0 はデフォルトで R8 フルモードを有効にします。詳細については、R8 フルモードをご覧ください。 |
互換性を破る変更: 適用されたビルド オプション値
AGP 8.0 以降では、これらのフラグの値を変更できなくなりました。gradle.properties
ファイルで指定した場合、値は無視され、AGP は警告を出力します。
フラグ | 適用された値 | 注 |
---|---|---|
android.dependencyResolutionAtConfigurationTime.warn |
true |
AGP 8.0 が構成の解決中に構成の解決を検出すると、警告を出力する Gradle 構成に悪影響を及ぼすため、構成フェーズでは あります。 |
android.r8.failOnMissingClasses |
true |
実行するクラスがない場合、AGP 8.0 は R8 を使用するビルドが失敗する
DEX の最適化を強化できますこの問題に対処するには、
-dontwarn keep ルールです。詳しくは
R8 圧縮ツールのクラス警告が見つからない。 |
android.testConfig.useRelativePath |
true |
単体テストで Android リソース、アセット、マニフェストの使用が有効になっている場合、AGP 8.0 は相対パスのみを含む test_config.properties ファイルを生成します。これにより、Android 単体テストで常に Gradle を使用できるようになります
ビルド キャッシュ。 |
android.useNewJarCreator |
true |
AGP は、JAR ファイルの作成時に Zipflinger ライブラリを使用して、 パフォーマンスが向上します。 |
android.bundletool.includeRepositoriesInDependencyReport |
true |
AAB と APK に SDK の依存関係情報を追加することが有効になっている場合は、 この情報には、AGP 8.0 ではプロジェクト リポジトリのリストも追加されています。詳しくは、Google Play Console の依存関係情報をご覧ください。 |
android.enableArtProfiles |
true |
ベースライン プロファイルが常に生成されるようになりました。詳しくは、ベースライン プロファイルをご覧ください。 |
android.enableNewResourceShrinker |
true |
デフォルトで新しいリソース圧縮の実装を使用します。新しいリソース圧縮ツールには、動的機能のサポートが含まれています。 |
android.enableSourceSetPathsMap |
true |
相対リソースパス マッピングの計算に使用されるため、Gradle ビルドはより頻繁に最新の状態になります。 |
android.cacheCompileLibResources |
true |
Gradle により、コンパイル済みのライブラリ リソースをデフォルトでキャッシュに保存できるようになりました。
プロジェクトの場所を基準にリソース ファイルを追跡します。要件
android.enableSourceSetPathsMap を有効にします。 |
android.disableAutomaticComponentCreation |
true |
AGP 8.0 では、デフォルトで SoftwareComponent は作成されません。代わりに、AGP は、公開 DSL を使用して公開するように構成されたバリアントのみを SoftwareComponents に作成します。 |
実行プロファイルの新しい安定版フラグ
AGP には新しいフラグ android.settings.executionProfile
が含まれています。このフラグを使用して、
デフォルト実行プロファイルをオーバーライド
SettingsExtension
。
詳細については、設定プラグインのドキュメントをご覧ください。
試験運用版フラグをプレビューするには、プレビュー リリースノートをご覧ください。
Kotlin の遅延プロパティ割り当てはサポートされていない
ビルド スクリプトに Gradle の Kotlin DSL を使用する場合は、
Studio と AGP 8.0 では、
=
演算子。この機能の詳細については、リリースノートとドキュメントをご覧ください。
Build Analyzer のタスクカテゴリ
Android Studio Flamingo 以降、Build Analyzer に いくつかのタスクを自動的に実行するタスクです。プロジェクトで AGP 8.0 以降を使用している場合は、 Build Analyzer では、タスクを個別に表示するのではなく、 あります。たとえば、Android リソース、Kotlin、Dexing に固有のタスクはグループ化され、ビルド時間で並べ替えられます。これにより、ビルド時間に最も影響を与えているカテゴリを簡単に把握できます。各カテゴリを展開する 対応するタスクのリストが表示されます。タスクをグループ化せずに個別に表示するには、[グループ条件] プルダウンを使用します。
新しい設定プラグイン
AGP 8.0.0-alpha09 では、新しい設定プラグインが導入されています。設定プラグインを使用すると、グローバル設定(すべてのモジュールに適用される設定)を 1 か所に集中させることができるため、複数のモジュールで設定をコピーして貼り付ける必要がなくなります。さらに、設定プラグインを使用して、ツールの実行プロファイル(ツールの実行方法に関するさまざまな手順)を作成して、それらを切り替えることができます。
設定プラグインを使用するには、settings.gradle
ファイルでプラグインを適用します。
apply plugin 'com.android.settings'
グローバル構成を一元化する
グローバル構成を構成するには、settings.gradle
ファイルで新しい android
ブロックを使用します。次の例をご覧ください。
android {
compileSdk 31
minSdk 28
...
}
ツール実行プロファイル
設定プラグインでは、一部のツールの実行プロファイルを作成することもできます。「 実行プロファイルは、ツールの実行方法を決定します。別のオプションを選択し 実行プロファイルを定義します。実行プロファイルでは、 ツールの JVM 引数を設定し、別のプロセスで実行するように構成できます。 現在、 R8 ツールがサポートされています。
次の例に示すように、実行プロファイルを作成し、settings.gradle
ファイルでデフォルトの実行プロファイルを設定します。
android {
execution {
profiles {
high {
r8 {
jvmOptions += ["-Xms2048m", "-Xmx8192m", "-XX:+HeapDumpOnOutOfMemoryError"]
runInSeparateProcess true
}
}
low {
r8 {
jvmOptions += ["-Xms256m", "-Xmx2048m", "-XX:+HeapDumpOnOutOfMemoryError"]
runInSeparateProcess true
}
}
ci {
r8.runInSeparateProcess false
}
}
defaultProfile "low"
}
}
デフォルトのプロファイルをオーバーライドするには、
android.experimental.settings.executionProfile
プロパティ
gradle.properties
ファイル:
android.experimental.settings.executionProfile=high
このプロパティは、コマンドラインを使用して設定することもできます。これにより、
ワークフローを切り替えることができます。たとえば 継続的インテグレーション/
コマンドラインを使用すれば、何もしなくても実行プロファイルを変更できる
settings.gradle
ファイルを変更します。
./gradlew assembleRelease \
-Pandroid.experimental.settings.executionProfile=ci
AGP 8.0 を実行するために JDK 17 が必要
Android Gradle プラグイン 8.0 を使用してアプリをビルドする場合、Gradle の実行に JDK 17 が必要になりました。Android Studio Flamingo には JDK 17 がバンドルされており、Gradle がデフォルトでこれを使用するように設定されています。そのため、ほとんどの Android Studio ユーザーはプロジェクトの設定を変更する必要がありません。
手動で JDK バージョンを設定する必要がある場合 Android Studio 内の AGP で使用する場合は、JDK 17 以降を使用する必要があります。
Android Studio とは別に AGP を使用する場合は、JAVA_HOME
環境変数または -Dorg.gradle.java.home
コマンドライン オプションを JDK 17 のインストール ディレクトリに設定して、JDK バージョンをアップグレードします。
修正された問題
Android Gradle プラグイン 8.0.0
修正された問題 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Android Gradle プラグイン |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Dexer(D8) |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
lint |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
lint の統合 |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
圧縮ツール(R8) |
|
Android Gradle プラグイン 8.0.1
修正された問題 | ||||
---|---|---|---|---|
圧縮ツール(R8) |
|
Android Gradle プラグイン 8.0.2
修正された問題 | |||||
---|---|---|---|---|---|
圧縮ツール(R8) |
|