Android Gradle 插件 8.6.0 (2024 年 8 月)

Android Gradle 插件 8.6.0 是一个主要版本,其中包含各种新功能和改进。

兼容性

Android Gradle 插件 8.6 支持的最高 API 级别是 API 级别 35。其他兼容性信息如下

最低版本 默认版本 说明
Gradle 8.7 8.7 如需详细了解,请参阅更新 Gradle
SDK Build Tools 34.0.0 34.0.0 安装配置 SDK Build Tools。
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' 失败
运行 lint 时出错(带 K2 UAST 和不带 K2 UAST)
Manifest 未生成用于 Variant 的 androidTest 配置
AGP 8.4 尝试在调试构建中设置 Startup Profiles
[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: Verifier 拒绝类 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 任务失败
Shrinker (R8)
[r8 8.5] 当禁用 API modeling 时,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'"
通过 R8 和 D8 打包的程序之间行为不同
更新到 Kotlin 2.0 后 R8 空指针

Android Gradle 插件 8.6.1

已修复的问题
Dexer (D8)
Dexing 任务/转换生成非确定性 classes.dex 内容
Shrinker (R8)
R8 8.5.x 在 SimpleInliningConstraintAnalysis 中出现 StackOverflowError
任务 :xxxx:minifyXXXReleaseWithR8 错误:R8: java.util.ConcurrentModificationException
java.lang.NullPointerException: Cannot invoke "com.android.tools.r8.ir.analysis.type.TypeElement.asClassType()"