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 |
|
||||