Android Gradle 外掛程式 9.2 是次要版本,內含多種新功能及改善項目。
相容性
Android Gradle 外掛程式 9.2 支援的最高 API 級別為 36.1。其他相容性資訊如下:
| 最低版本 | 預設版本 | 附註 | |
|---|---|---|---|
| Gradle | 9.4.1 | 9.4.1 | 詳情請參閱「更新 Gradle」一節。 |
| SDK 版本工具 | 36.0.0 | 36.0.0 | 安裝或設定 SDK 建構工具。 |
| NDK | 不適用 | 28.2.13676358 | 安裝或設定 NDK 其他版本。 |
| JDK | 17 | 17 | 詳情請參閱「設定 JDK 版本」相關說明。 |
統一涵蓋範圍和測試報表
AGP 9.2.0-alpha07 推出多項工作,可產生 HTML 資訊主頁,彙整各種測試類型 (單元和檢測設備)、模組和建構變數的測試結果和涵蓋範圍,在單一資訊主頁中提供全面概覽。詳情請參閱「產生統一程式碼涵蓋率報表」和「查看統一測試報表」。
R8 變更
AGP 9.2.0 包含下列 R8 變更。
更嚴格的 -keepattributes 語意,可保留執行階段不可見的註解
執行階段不可見的註解無法在執行階段讀取。因此,D8 會無條件移除執行階段不可見的註解,且無法變更這項設定。
為與 ProGuard 相容,R8 支援輸出執行階段不可見的註解。但編譯為 DEX 時,通常不應保留執行階段不可見的註解。不過,一般做法是納入便利規則 -keepattributes *Annotation* (直接或間接來自消費者保留規則),讓 R8 保留執行階段可見的註解。很抱歉,這也會導致執行階段註解保持隱藏狀態。
為減輕這個問題並更符合 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 |
|
||||