Android Gradle 插件 8.4.0(2024 年 4 月)
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
Android Gradle 插件 8.4.0 是一个主要版本,包含各种新功能和改进。
兼容性
Android Gradle 插件 8.4 支持的最高 API 级别为 API 级别 34。以下是更多兼容性信息:
|
最低版本 |
默认版本 |
备注 |
| Gradle |
8.6 |
8.6 |
如需了解详情,请参阅更新 Gradle。 |
| SDK Build Tools |
34.0.0 |
34.0.0 |
安装或配置 SDK Build Tools。 |
| NDK |
不适用 |
26.1.10909125 |
安装或配置其他版本的 NDK。 |
| JDK |
17 |
17 |
如需了解详情,请参阅设置 JDK 版本。 |
以下是 Android Gradle 插件 8.4 中的新功能。
补丁版本
以下是 Android Studio Jellyfish 和 Android Gradle 插件 8.4 中的补丁版本列表。
Android Studio Jellyfish | 2023.3.1 补丁 2 和 AGP 8.4.2(2024 年 6 月)
重要安全更新:Android Studio Iguana | 2023.2.1 及更高版本中提供的 GitHub 插件存在安全漏洞,可能会将访问令牌泄露给未经授权的方。
修复:Jetbrains 已在 IntelliJ 平台产品中解决此问题,并且该修复现已在 Android Studio Jellyfish | 2023.3.1 Patch 2 (2023.3.1.20) 中提供。
如果您已安装 稳定版渠道中的 Android Studio build,则可以依次点击 Help > Check for Updates(在 macOS 上,依次点击 Android Studio > Check for Updates)来获取更新。否则,请下载最新稳定版 build。
此外,如果您曾在 IDE 中主动使用 GitHub 拉取请求功能,我们强烈建议您撤消该插件正在使用的所有 GitHub 令牌。鉴于插件可以使用 OAuth 集成或个人访问令牌 (PAT),请检查这两者并根据需要进行撤消:
- 如需撤消 OAuth 集成的访问权限,请依次前往应用 > 授权的 OAuth 应用,然后撤消 JetBrains IDE 集成令牌的访问权限。
- 如需撤消 PAT 的访问权限,请前往个人访问令牌,然后删除为 GitHub 插件颁发的令牌。默认令牌名称为 IntelliJ IDEA GitHub 集成插件,但您可能使用的是自定义名称。
撤消令牌的访问权限后,您需要重新设置插件,才能再次使用所有插件功能,包括 Git 操作。
对于由此带来的不便,我们深表歉意,并强烈建议所有用户立即更新,以保护其代码和数据。
此项次要更新还包含这些 bug 修复。
Android Studio Jellyfish | 2023.3.1 补丁 1 和 AGP 8.4.1(2024 年 5 月)
此项次要更新包含这些 bug 修复。
库类已缩减
从 Android Gradle 插件 8.4 开始,如果 Android 库项目经过缩减,则缩减后的程序类将发布以供项目间发布。
这意味着,如果应用依赖于缩减版 Android 库子项目,APK 将包含缩减版 Android 库类。如果 APK 中缺少类,您可能需要调整库保留规则。
如果您要构建和发布 AAR,那么您的库所依赖的本地 JAR 将以未精简形式包含在 AAR 中,这意味着 code shrinker 不会对其运行。
如需恢复之前的行为,请在 gradle.properties 文件中设置 android.disableMinifyLocalDependenciesForLibraries,并提交 bug。
未来的 AGP 版本将移除此标志。
修复的问题
Android Gradle 插件 8.4.2
| 已修复的问题 |
| Android Gradle 插件 |
|
AGP 8.4 似乎会破坏 CI 上的 GMD 下载
|
|
Android Gradle 插件 8.4.1
| 已修复的问题 |
| Android Gradle 插件 |
|
允许禁止显示有关 JDK 21 弃用对以 Java 8 为目标平台的支持的警告
|
|
| Dexer (D8) |
|
java.lang.VerifyError: Verifier rejected class
|
|
混淆后出现新版 R8 格式转换错误
|
|
中间 build 可能没有桩的完整全局合成内容
|
|
Android Gradle 插件 8.4.0
| 已修复的问题 |
| Android Gradle 插件 |
|
改进了旨在解释“--release”选项为何无法用于 JavaCompile 的错误消息
|
|
使用 @DoNotCacheByDefault 停用了 MergeSourceSetFolders 缓存
|
|
无法在 AGP 8.2.0 中设置 JaCoCo 版本
|
|
DynamicFeatureBuildType 缺少 isDebuggable
|
|
精简的库类未正确发布以供项目间使用
|
|
提供排除生成文件的 Variant#sources API
|
|
AGP 模型不包含 java-platform 项目依赖项
|
|
ExtractAarTransform 为没有 classes.jar 的 AAR 创建了不可重现的 classes.jar
|
|
允许从 ComposeOptions 配置 sourceInformation
|
|
在消息 android.bundle.DeviceSpec 中找不到字段:sdk_runtime
|
|
对 compileOnlyApi 的支持
|
|
当资源处理处于停用状态时,R8 会在库模块上失败
|
|
添加了在转换期间更改制品名称的功能
|
|
将任务输出添加到 sourceSets.androidMain.resources 的 srcDir 不会创建任务依赖项
|
|
AndroidPluginVersion.toString() 缺少前导 0
|
|
Artifacts.add(FileSystemLocation) 应该更具限制性。
|
|
AGP 8.3.0-alpha11 会生成发布 APK,该 APK 会在启动时崩溃,并报出 android.content.res.Resources$NotFoundException
|
|
在使用动态功能的项目中,Android Gradle 插件 8.2.0 的安装任务失败
|
|
AIDL 编译失败,并显示 IndexOutOfBoundsException:索引 0 超出长度 0 的范围
|
|
MergeJavaResourcesTask 增量输入处理问题
|
|
AGP 8.3.0-alpha02 依赖于存在已知安全漏洞的库
|
|
所选 activity 模板需要具有 androidx.* 依赖项的项目
|
|
AGP 升级助理错误地从模块中移除了 consumerProguardFiles
|
|
AGP 升级助理无限加载
|
|
SourceDirectories#static 不应依赖于 GenerateBuildConfig 任务
|
|
Compose 预览无法解析传递依赖项中的类
|
|
AGP 8.3 会破坏 zipApksFor 任务
|
|
打包在 Android APK 中的 AndroidX 桌面工件
|
|
| lint |
|
Lint 测试框架的 GradleModelMocker 不允许设置库版本
|
|
Lint K2 UAST:UCallableReferenceExpression 报告错误的 qualifierType
|
|
使用 useK2Uast=true 时,lint 会针对重载函数报告假正例
|
|
[BuildTool/Lint] ChecksSdkIntAtLeast 构造函数属性
|
|
| lint 集成 |
|
本页面上的内容和代码示例受内容许可部分所述许可的限制。Java 和 OpenJDK 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-10-17。
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["没有我需要的信息","missingTheInformationINeed","thumb-down"],["太复杂/步骤太多","tooComplicatedTooManySteps","thumb-down"],["内容需要更新","outOfDate","thumb-down"],["翻译问题","translationIssue","thumb-down"],["示例/代码问题","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2025-10-17。"],[],[]]