Android Gradle Plugin 8.5.0(2024 年 6 月)

Android Gradle Plugin 8.5.0 是一个主要版本,包含各种新功能和改进。

兼容性

Android Gradle Plugin 8.5 支持的最高 API 级别是 34。以下是其他兼容性信息

最低版本 默认版本 注意
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 Plugin 8.5.0

已解决的问题
Android Gradle Plugin
AAPT: 错误:属性 'package' 在标签中不是有效的 Android 包名:“butterknife”。
AGP 8.3 破坏了 zipApksFor 任务
在空的 sdk 提供者类名上,Privacy Sandbox Proguard 规则生成失败
Compose 预览无法解析传递依赖项中的类
JavaPreCompileTask 在计算非增量式注解处理器时包含 KSP 类路径依赖项
任务 ':app:generateDebugLocaleConfig' 执行失败。
DexingNoClasspathTransform (minSdk >= 24) 使用 Java 11 目标时因缺少嵌套成员而失败
使用 `android.useFullClasspathForDexingTransform = true` 时,构建失败,并显示 `Found multiple transforms that can produce a variant`
使用或不使用 K2 UAST 运行 lint 时出错
Lint
buildList - Lint 误报警告
Lint 集成
Lint 无法区分 KMP 依赖项

Android Gradle Plugin 8.5.1

已解决的问题
Android Gradle Plugin
[Koala 2024.1.2 Canary 2] 在拆分 APK 上运行基线配置文件模块时出错

Android Gradle Plugin 8.5.2

已解决的问题
Android Gradle Plugin
AGP 8.5:运行更多的 "mergeDebugResources" 任务,导致构建速度变慢
通过 Variant API 添加 srcs 目录未按预期工作
Dexer (D8)
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: SetTextI18n 对分配空字符串发出警告。
Shrinker (R8)
[r8 8.5] 在禁用 api modeling 时,r8 横向类合并导致 Android5 上出现验证错误
使用 Gradle Plugin 8.4.0/8.5.0 构建的 Wear OS 版本可能导致 java.lang.IllegalAccessError
[r8 8.5] 纵向类合并导致运行时 NPE
使用 AGP 8.6.0-alpha06 进行 Gradle 同步失败,R8 中出现 "Unexpected backport missing from Android U" 错误
R8 生成的 dex 文件在执行时显示 "Unable to find static main(String[]) in 'Test'"
R8 和 D8 打包的程序行为不同
R8 (AGP 8.5.0+) 失败,错误信息为 "Unexpected rewriting of item: ... to two distinct items:..."
R8 处理错误,可能由于右移运算符引起
更新到 Kotlin 2.0 后 R8 出现 NullPointer