Android Gradle 外掛程式 8.6.0 版 (2024 年 8 月)

Android Gradle 外掛程式 8.6.0 是主要版本,內含多種新功能及改善項目。

相容性

Android Gradle 外掛程式 8.6 支援的最高 API 級別為 35。其他相容性資訊如下:

最低版本 預設版本 附註
Gradle 8.7 8.7 詳情請參閱「更新 Gradle」一節。
SDK 版本工具 34.0.0 34.0.0 安裝設定 SDK 版本工具。
NDK 26.1.10909125 安裝設定 NDK 其他版本。
JDK 17 17 詳情請參閱「設定 JDK 版本」相關說明。

已修正問題

Android Gradle 外掛程式 8.6.0 版

已修正問題
Android Gradle 外掛程式
AGP 7.0.0-alpha10 迴歸:已啟用 databinding 時無法套用外掛程式 'com.android.internal.library'
使用和不使用 K2 UAST 執行 Lint 時發生錯誤
未為變數的 androidTest 設定產生資訊清單
AGP 8.4 會嘗試在偵錯版本中設定啟動設定檔
[Koala 2024.1.2 Canary 2] 在分割 APK 上執行基準設定檔模組時發生錯誤
清除/移除 ProjectInfo
更新 AGP DSL 中 `isIncludeAndroidResources` 的過時 kdoc
Lint 使用 res 目錄,但未新增工作依附元件
AGP 8.5:執行更多「mergeDebugResources」工作,導致建構作業變慢
透過 Variant API 新增 srcs 目錄時,無法正常運作
Dexer (D8)
將 API 資料庫更新至 Android 15 (API 級別 35)
java.lang.VerifyError:驗證器拒絕類別 com.pax.log.LogUtils:java.lang.StackTraceElement com.pax.log.LogUtils.getCaller(com.pax.log.b, java.lang.StackTraceElement[], int) 驗證失敗
Lint
Lint 不會針對註解註解的使用情形呼叫 visitAnnotationUsage
使用型別使用註解時,發生 UnknownNullness Lint 錯誤
[程式庫 desugar] 啟用 desugaring 時,Lint 會顯示偽陽性 NewApi 警告
Wear 裝置上的 Credential Manager Lint 警告有誤
Lint:SetTextI18n 會抱怨指派空字串。
Lint 整合
Lint 工作會因內含版本而失敗
縮減器 (R8)
[r8 8.5]停用 API 建模時,r8 水平類別合併會導致 Android5 發生驗證錯誤
使用 Gradle 外掛程式 8.4.0/8.5.0 建構的 Wear OS 版本可能會導致 java.lang.IllegalAccessError
R8 會將空白成員子句隱含地替換為 () 的相符項目
[r8 8.5] 垂直類別合併導致執行階段 NPE
R8 處理錯誤,可能與右移運算子有關
R8 (AGP 8.5.0 以上版本) 執行失敗,並顯示「Unexpected rewriting of item: ... to two distinct items:...」錯誤訊息
R8 產生的 DEX 檔案在執行時顯示「Unable to find static main(String[]) in 'Test'」(無法在「Test」中找到靜態 main(String[])
R8 和 D8 封裝的程式之間的行為差異
更新至 Kotlin 2.0 後,R8 發生 NullPointer 錯誤

Android Gradle 外掛程式 8.6.1 版

已修正問題
Dexer (D8)
Dex 工作/轉換作業會產生不確定的 classes.dex 內容
縮減器 (R8)
SimpleInliningConstraintAnalysis 中的 R8 8.5.x StackOverflowError
Task :xxxx:minifyXXXReleaseWithR8 ERROR: R8: java.util.ConcurrentModificationException
java.lang.NullPointerException: Cannot invoke "com.android.tools.r8.ir.analysis.type.TypeElement.asClassType()"