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 构建工具 34.0.0 34.0.0 安装配置 SDK 构建工具。
NDK N/A 26.1.10909125 安装配置 不同版本的 NDK。
JDK 17 17 要了解更多信息,请参阅 设置 JDK 版本

已修复的问题

Android Gradle 插件 8.6.0

已修复的问题
Android Gradle 插件
AGP 7.0.0-alpha10 回归:启用数据绑定时,无法应用插件“com.android.internal.library”
使用和不使用 K2 UAST 运行 lint 时出错
未为 Variant 的 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] lint 显示启用 desugaring 时出现误报 NewApi 警告
Wear 上的凭据管理器 Lint 警告不正确
Lint:SetTextI18n 抱怨分配空字符串。
Lint 集成
包含构建时 Lint 任务失败
代码缩减器 (R8)
[r8 8.5] r8 水平类合并导致在禁用 API 建模时 Android 5 上出现验证错误
使用 Gradle 插件 8.4.0/8.5.0 构建的 Wear OS 版本可能会导致 java.lang.IllegalAccessError
R8 隐式地将空成员子句替换为匹配项()
[r8 8.5] 垂直类合并导致运行时 NPE
R8 处理错误,可能是由于右移运算符造成的
R8 (AGP 8.5.0+) 出现错误“意外重写项目:... 为两个不同的项目:...”而失败
R8 生成的 dex 文件在执行时显示“无法在 'Test' 中找到静态 main(String[])”
R8 和 D8 打包的程序之间的行为差异
更新到 Kotlin 2.0 后 R8 空指针

Android Gradle 插件 8.6.1

已修复的问题
Dexer (D8)
Dexing 任务/转换生成不确定的 classes.dex 内容。
代码缩减器 (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()"