Android Gradle 外掛程式 9.2 是次要版本,內含多種新功能及改善項目。
相容性
Android Gradle 外掛程式 9.2 支援的最高 API 級別為 37.0。其他相容性資訊如下:
| 最低版本 | 預設版本 | 附註 | |
|---|---|---|---|
| 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.1 版
| 已修正問題 | ||
|---|---|---|
| Android Gradle 外掛程式 |
|
|
Android Gradle 外掛程式 9.2.0 版
| 已修正問題 | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Android Gradle 外掛程式 |
|
|||||||||||||||
| Lint |
|
|||||||||||||||
| Lint 整合 |
|
|||||||||||||||
| 縮減器 (R8) |
|
|||||||||||||||