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 では、メインの名前空間からテスト名前空間を推測する
誤って追加されることがあります。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 を生成しません。必要な
必要があります。 |
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 |
新しい Resource Shinker 実装をデフォルトで使用します。新しい リソース圧縮ツールには動的な機能のサポートが含まれています。 |
android.enableSourceSetPathsMap |
true |
相対リソースパスのマッピングを計算するために使用され、Gradle がビルドします。 より頻繁に最新の状態に保たれます。 |
android.cacheCompileLibResources |
true |
Gradle により、コンパイル済みのライブラリ リソースをデフォルトでキャッシュに保存できるようになりました。
プロジェクトの場所を基準にリソース ファイルを追跡します。要件
android.enableSourceSetPathsMap を有効にします。 |
android.disableAutomaticComponentCreation |
true |
AGP 8.0 は、デフォルトでは SoftwareComponent を作成しません。AGP は代わりに 公開するように設定されているバリアントの SoftwareComponent のみ パブリッシュします |
実行プロファイルの新しい安定版フラグ
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 か所に集約できるため、構成を複数のファイルにコピーして貼り付ける手間が省けます。 説明します。また、設定プラグインを使用して Google Cloud の 実行プロファイル、またはツールを実行するためのさまざまな手順 切り替えることができます。
設定プラグインを使用するには、settings.gradle
ファイルでプラグインを適用します。
apply plugin 'com.android.settings'
グローバル構成の一元化
グローバル設定を構成するには、新しい android
ブロックを
settings.gradle
ファイル。次の例をご覧ください。
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 を使用してアプリをビルドする場合、JDK 17 が必要になりました Gradle を実行します。Android Studio Flamingo は JDK 17 をバンドルし、Gradle を設定して、 デフォルトで使用するため、ほとんどの Android Studio ユーザーは、 そのプロジェクトに対する構成変更を自動的に追跡します。
手動で JDK バージョンを設定する必要がある場合 使用するには、JDK 17 以降を使用する必要があります。
Android Studio とは別に AGP を使用する場合は、次の方法で JDK バージョンをアップグレードしてください。
JAVA_HOME
の設定
環境変数
または -Dorg.gradle.java.home
コマンドライン オプション
JDK 17 のインストール ディレクトリに移動します。