Android Gradle 插件 8.5.0 (2024年6月)

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

兼容性

Android Gradle 插件 8.5 支持的最大 API 等级为 API 等级 34。以下是其他兼容性信息

最低版本 默认版本 备注
Gradle 8.7 8.7 要了解更多信息,请参阅 更新 Gradle
SDK Build Tools 34.0.0 34.0.0 安装配置 SDK Build Tools。
NDK N/A 26.1.10909125 安装配置 不同版本的 NDK。
JDK 17 17 要了解更多信息,请参阅 设置 JDK 版本

已修复的问题

Android Gradle 插件 8.5.0

已修复的问题
Android Gradle 插件
AAPT: error: attribute 'package' intag is not a valid Android package name: 'butterknife'.
AGP 8.3 中断 zipApksFor 任务
隐私沙盒 Proguard 规则生成在空 SDK 提供程序类名上失败
Compose 预览无法解析来自传递依赖项的类
JavaPreCompileTask 在计算非增量注释处理器时包含 KSP 类路径依赖项
任务 ':app:generateDebugLocaleConfig' 执行失败。
具有 Java 11 目标的 DexingNoClasspathTransform (minSdk >= 24) 由于缺少嵌套成员而失败
使用 `android.useFullClasspathForDexingTransform = true`,构建失败并显示 `Found multiple transforms that can produce a variant`
使用和不使用 K2 UAST 运行 lint 时出现错误
Lint
buildList - 误报 Lint 警告
Lint 集成
Lint 无法消除 KMP 依赖项的歧义

Android Gradle 插件 8.5.1

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

Android Gradle 插件 8.5.2

已修复的问题
Android Gradle 插件
AGP 8.5:运行更多“mergeDebugResources”任务,从而减慢构建速度
通过 Variant API 添加 srcs 目录无法按预期工作
Dexer (D8)
java.lang.VerifyError: Verifier rejected class com.pax.log.LogUtils: java.lang.StackTraceElement com.pax.log.LogUtils.getCaller(com.pax.log.b, java.lang.StackTraceElement[], int) failed to verify
Lint
Lint:SetTextI18n 抱怨分配空字符串。
Shrinker (R8)
[r8 8.5] r8 水平类合并导致在禁用 API 建模时在 Android 5 上出现验证错误
使用 Gradle 插件 8.4.0/8.5.0 构建的 Wear OS 版本可能会导致 java.lang.IllegalAccessError
[r8 8.5] 垂直类合并导致运行时 NPE
使用 AGP 8.6.0-alpha06 进行 Gradle 同步失败,在 R8 中出现“Android U 中缺少意外的反向移植”错误
R8 生成的 dex 文件在执行时显示“无法在 'Test' 中找到静态 main(String[])”
R8 和 D8 打包的程序之间的行为不同
R8 (AGP 8.5.0+) 失败并出现错误“Unexpected rewriting of item: ... to two distinct items:...”
R8 处理错误可能是由于右移运算符造成的
更新到 Kotlin 2.0 后 R8 空指针