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(例如 assembleReleasebundleRelease)来自动生成报告。

如需了解详情,请参阅运行独立的 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 构建非确定性:相同的输入产生不同的 dex/映射(“在 LIR 中保留假设指令”中的回归)
使用 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 插件
如果未设置 consumerKeepRules.publish = true,则 KMP keepRules 源代码集会被忽略

Android Gradle 插件 9.3.0-alpha03

已修复的问题
Android Gradle 插件
将 Gradle 升级到 9.2.0 后,出现 java.lang.ClassNotFoundException:“找不到类 com.android.tools.r8.RecordTag”
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 配置优化,请使用新的 optimization 块。对于应用,请在应用级 build 脚本中配置 build 类型(例如 releasedebug)内的 optimization 代码块。更新后的优化 DSL 使 R8 配置更简单:

  • 启用优化功能后,系统会同时进行代码优化和优化型资源缩减。
  • 您不再需要指定默认的 Android keep 规则文件。

请注意,系统仍支持旧版 DSL

引入了源集来定义保留规则

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