Android Gradle 插件 9.3.0(2026 年 7 月)

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

兼容性

Android Gradle 插件 9.3 支持的最高 API 级别为 API 级别 37。 以下是更多兼容性信息:

最低版本 默认版本 备注
Gradle 9.5.0 9.5.0 如需了解详情,请参阅更新 Gradle。
SDK Build Tools 36.0.0 36.0.0 安装或配置 SDK Build Tools。
NDK 不适用 28.2.13676358 安装或配置其他版本的 NDK。
JDK 17 17 如需了解详情,请参阅设置 JDK 版本。

独立的 R8 配置分析器 Gradle 任务

Android Gradle 插件 9.3 引入了一个专用 Gradle 任务,用于单独运行 R8 配置分析器。R8 配置分析器可帮助您优化应用的代码缩减和混淆规则。

./gradlew :app:analyzeReleaseR8Config

:app:analyzeReleaseR8Config 任务会生成报告,而无需完成 APK 或 Bundle 编译流水线。这样可以缩短反馈环,从而加快开发者在优化保留规则时的迭代速度。或者,您也可以通过运行 R8 发布 build(例如 assembleRelease 或 bundleRelease)来自动生成报告。

如需了解详情,请参阅运行独立的 Gradle 任务以生成报告。

修复的问题

Android Gradle 插件 9.3.3

已修复的问题
Android Gradle 插件
AGP 9.3.0 的新优化 { enable = true } DSL 不会在 ApplicationVariant 对象中设置 isMinifyEnabled
Dexer (D8)
在输入/输出相同的情况下,D8 9.2.14 在 `mergeProjectDexDebug` 中的速度比 8.13.6 慢约 38%
缩减器 (R8)
D8 调试模式:ArrayIndexOutOfBoundsException:索引 -1 超出长度 31 的边界 - R8 8.8.34 和 8.9.27 之间的回归
VerifyError:Outliner 错误地扩展了 try-catch 区域,导致寄存器未初始化
R8 写入的“.kotlin_module”文件名称中包含“:”,导致文件名在 Windows 上无效
R8 build 非确定性:相同的输入会产生不同的 dex/映射(“在 LIR 中保留 Assume 指令”导致的回归问题)
使用 R8 9.1 时的重复映射
AGP 间歇性地生成无法通过验证且会在启动时导致应用崩溃的 dex 文件
NullPointerException:无法调用 Position.getOutermostCaller(),因为 entryPosition 为 null
每条规则的内存消耗量较高
R8:Android 4.4 上的 VerifyError

Android Gradle 插件 9.3.2

已修复的问题
lint
AGP 9.3 lint 在 JDK 17 上崩溃 - 捆绑的 intellij-core JavaDocParser 中出现 NoSuchMethodError: java.util.List.removeLast()

Android Gradle 插件 9.3.1

已修复的问题
AGP 9.3.1 中没有标记为已修复的公开问题

Android Gradle 插件 9.3.0-rc02

已修复的问题
AGP 9.3.0-rc02 中没有公开问题被标记为已修复

Android Gradle 插件 9.3.0-rc01

已修复的问题
AGP 9.3.0-rc01 中没有标记为已修复的公开问题

Android Gradle 插件 9.3.0-alpha12

已修复的问题
Android Gradle 插件
构建失败:compile_library_classes_jar 中的 classes.jar 存在文件句柄泄漏,导致在 Windows 上无法重新构建,直到 IDE 重启
lint
Lint 将导入的 Java 库视为 Android 项目,忽略编译 SDK 版本

Android Gradle 插件 9.3.0-alpha11

已修复的问题
AGP 9.3.0-alpha11 中没有标记为已修复的公开问题

Android Gradle 插件 9.3.0-alpha10

已修复的问题
AGP 9.3.0-alpha10 中没有标记为已修复的公开问题

Android Gradle 插件 9.3.0-alpha09

已修复的问题
AGP 9.3.0-alpha09 中没有公开问题被标记为已修复

Android Gradle 插件 9.3.0-alpha08

已修复的问题
AGP 9.3.0-alpha08 中没有标记为已修复的公开问题

Android Gradle 插件 9.3.0-alpha07

已修复的问题
AGP 9.3.0-alpha07 中没有标记为已修复的公开问题

Android Gradle 插件 9.3.0-alpha06

已修复的问题
Android Gradle 插件
JavaDocGenerationTask 应使用工作器

Android Gradle 插件 9.3.0-alpha05

已修复的问题
缩减器 (R8)
L8 混淆映射未包含在应用 mapping.txt 中

Android Gradle 插件 9.3.0-alpha04

已修复的问题
Android Gradle 插件
如果未设置 it.consumerKeepRules.publish = true,系统会忽略 KMP keepRules 源代码集

Android Gradle 插件 9.3.0-alpha03

已修复的问题
Android Gradle 插件
java.lang.ClassNotFoundException: Didn't find class "com.android.tools.r8.RecordTag" after upgrading gradle to 9.2.0
lint
停用资源缩减功能时出现 lint 错误

Android Gradle 插件 9.3.0-alpha02

已修复的问题
Android Gradle 插件
功能请求:向 Android Gradle 插件添加 native_libs_merge_blame_file 支持
lint
AnnotationDetector 问题消息中缺少反引号
停用资源缩减功能时出现 lint 错误

Android Gradle 插件 9.3.0-alpha01

已修复的问题
Android Gradle 插件
自动生成的版本代码存在问题
AGP:不再使用 Project 作为依赖项表示法
lint
UseKtx 出现 lint 假正例

Android Gradle 插件 9.3.0

已修复的问题
AGP 9.3.0 中没有标记为已修复的公开问题

更新了优化 DSL,以配置 R8 keep 规则

引入了更新后的优化 DSL,用于为 R8 优化配置 Keep 规则,应用模块和库模块测试均支持该 DSL。如需使用更新后的 DSL 配置优化,请使用新的 optimization 代码块。对于应用,请在应用级 build 脚本中的 build 类型(例如 release 或 debug)内配置 optimization 代码块。更新后的优化 DSL 使 R8 配置更简单:

  • 启用优化功能会同时启用代码优化和优化型资源缩减功能。
  • 您无需再指定默认的 Android 保留规则文件。

请注意,旧版 DSL 仍受支持。

引入源代码集来定义保留规则

将保留规则放在 src/<variant>/keepRules/ 源代码集中,并使用文件后缀 .keep。更新后的优化 DSL 和旧版 DSL 均支持保留规则的源代码集。应用模块和库模块支持使用源代码集来定义保留规则,Kotlin Multiplatform (KMP) 模块也支持使用源代码集来定义使用方规则。