Google uses AI technology to translate content into your preferred language. AI translations can contain errors.
Android Gradle 外掛程式 9.2.0 版 (2026 年 4 月)
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
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 外掛程式 |
|
將 Gradle 升級至 9.2.0 後,出現「java.lang.ClassNotFoundException: Didn't find class "com.android.tools.r8.RecordTag"」錯誤
|
|
Android Gradle 外掛程式 9.2.0 版
| 已修正問題 |
| Android Gradle 外掛程式 |
|
如果使用者有 commonTest 但忘記使用 withHostTestBuilder,系統會發出警告
|
|
[fused lib - public] OkHttp includes sources
|
|
無法在程式庫中使用資訊清單預留位置執行 androidDeviceTest (AGP 9.0.0,搭配 com.android.kotlin.multiplatform.library 外掛程式)
|
|
如果使用者已停用 Java,但有 src/androidDeviceTest/java,AGP 應發出警告
|
|
AGP 9.0 沒有與 applicationVariants.all.mergeAssetsProvider 相對應的 androidComponents.onVariant
|
|
`*.xml.flat` 檔案包含絕對檔案路徑
|
|
R8D8ThreadPoolBuildService 未註冊
|
|
JDK 26 導致 JdkImageTransform 失敗
|
|
在 AGP 10.0 中,自動將 minAgpVersion 編碼至 AAR 中繼資料
|
|
使用新的 AGP DSL 重新命名 APK
|
|
存取 (但未評估) bootClasspath 時發生 IllegalStateException 錯誤:targetCompatibility 尚未完成
|
|
keepRules sourceset 無法用於程式庫
|
|
在 AGP 中嵌入 CC 相容性聲明
|
|
將 Kotlin Gradle 外掛程式依附元件更新至 2.3.10
|
|
允許測試的 compileSdk 高於主要 SDK
|
|
| Lint |
|
檢查訊息中的錯字
|
|
由於 `SarifReporter.kt` 中的偏移指標停滯,Lint SARIF 報告中的脈絡視窗遭到截斷
|
|
Lint Gradle 用戶端缺少重要功能,因此最多只能算是不可靠
|
|
停用資源縮減功能時發生 Lint 錯誤
|
|
使用巢狀 IntDef 常數時,AGP 9 Lint 會回報 WrongConstant
|
|
停用資源縮減功能時發生 Lint 錯誤
|
|
| Lint 整合 |
|
Android Lint 無法使用編譯為 Java 21 位元組程式碼的自訂 Lint 檢查
|
|
Lint Gradle 工作會忽略 --quiet 標記
|
|
| 縮減器 (R8) |
|
這個頁面中的內容和程式碼範例均受《內容授權》中的授權所規範。Java 與 OpenJDK 是 Oracle 和/或其關係企業的商標或註冊商標。
上次更新時間:2026-06-12 (世界標準時間)。
[[["容易理解","easyToUnderstand","thumb-up"],["確實解決了我的問題","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["缺少我需要的資訊","missingTheInformationINeed","thumb-down"],["過於複雜/步驟過多","tooComplicatedTooManySteps","thumb-down"],["過時","outOfDate","thumb-down"],["翻譯問題","translationIssue","thumb-down"],["示例/程式碼問題","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["上次更新時間:2026-06-12 (世界標準時間)。"],[],[]]