Android Gradle プラグイン 9.2 はマイナー リリースで、さまざまな新機能や改善措置が組み込まれています。
互換性
Android Gradle プラグイン 9.2 でサポートされる最大 API レベルは API レベル 36.1 です。その他の互換性情報は以下のとおりです。
| 最小バージョン | デフォルトのバージョン | 備考 | |
|---|---|---|---|
| Gradle | 9.4.1 | 9.4.1 | 詳細については、Gradle のアップデートをご覧ください。 |
| SDK Build Tools | 36.0.0 | 36.0.0 | SDK Build Tools をインストールまたは設定します。 |
| NDK | なし | 28.2.13676358 | 別のバージョンの NDK をインストールまたは設定します。 |
| JDK | 17 | 17 | 詳細については、JDK バージョンの設定をご覧ください。 |
統合されたカバレッジ レポートとテストレポート
AGP 9.2.0-alpha07 では、さまざまなテストタイプ(単体テストとインストルメンテーション テスト)、モジュール、ビルド バリアントのテスト結果とカバレッジを統合する HTML ダッシュボードを生成するタスクが導入され、1 つのダッシュボードで包括的な概要を確認できるようになりました。詳細については、統合コード カバレッジ レポートを生成すると統合テストレポートを表示するをご覧ください。
R8 の変更
AGP 9.2.0 には次の R8 の変更が含まれています。
実行時に非表示のアノテーションを保持するためのより厳格な -keepattributes セマンティクス
実行時に非表示のランタイム アノテーションは、実行時に読み取ることができません。そのため、D8 はランタイム不可視のアノテーションを無条件で削除します。この動作を変更することはできません。
ProGuard との互換性を確保するため、R8 は実行時に不可視のアノテーションの出力をサポートしています。ただし、DEX にコンパイルするときは、通常、実行時に非表示のアノテーションは保持されません。ただし、R8 が実行時に可視のアノテーションを保持するように、便利なルール -keepattributes *Annotation* を(直接的またはコンシューマーの keep ルールから間接的に)含めるのが一般的です。残念ながら、この方法では実行時に非表示のアノテーションも保持されてしまいます。
この問題を軽減し、D8 の動作によりよく一致させるため、ワイルドカードを含む -keepattributes パターンは RuntimeInvisibleAnnotations、RuntimeInvisibleParameterAnnotations、RuntimeInvisibleTypeAnnotations に一致しなくなりました。その結果、ランタイム不可視のアノテーションは、ワイルドカードなしで属性名が明示的に指定されている場合にのみ保持されます。
次のルールでは、実行時に非表示のアノテーションは保持されなくなります。
-keepattributes *
-keepattributes *Annotation*
-keepattributes *Invisible*
実行時に非表示のアノテーションを保持するには、次のルールを使用します。
-keepattributes RuntimeInvisibleAnnotations,
RuntimeInvisibleParameterAnnotations,
RuntimeInvisibleTypeAnnotations
メンバー ルールでの否定名のサポート
構成言語が拡張され、否定されたメンバー名パターンに一致できるようになりました。
たとえば、「ForTesting」で終わらないすべてのメソッドを照合するには、次のルールを使用します。
-keepclassmembers class com.example.MyClass {
*** !*ForTesting(...);
}
メンバー名のパターンは、-if ルールの前提条件で否定することもできます。否定されたメンバー名パターンにワイルドカードが含まれている場合、そのようなワイルドカードを -if 結果ルールで後方参照することはできません。
解決済みの問題
Android Gradle プラグイン 9.2.0-alpha04
| 修正された問題 | |||
|---|---|---|---|
| Android Gradle プラグイン |
|
||
Android Gradle プラグイン 9.2.0-alpha03
| 修正された問題 | |||
|---|---|---|---|
| Android Gradle プラグイン |
|
||
| lint |
|
||
| lint の統合 |
|
||
Android Gradle プラグイン 9.2.0-alpha02
| 修正された問題 | ||||
|---|---|---|---|---|
| Android Gradle プラグイン |
|
|||
| lint の統合 |
|
|||
Android Gradle プラグイン 9.2.0-alpha01
| 修正された問題 | |||||
|---|---|---|---|---|---|
| Android Gradle プラグイン |
|
||||
| lint |
|
||||