Android Gradle 插件 8.2.0(2023 年 11 月)
使用收藏夹保持井井有条 根据您的偏好保存内容并进行分类。
Android Gradle 插件 8.2.0 是一个主要版本,包含各种新功能和改进。
兼容性
Android Gradle 插件 8.2 支持的最高 API 级别是 API 级别 34。以下是其他兼容性信息
|
最低版本 |
默认版本 |
备注 |
Gradle |
8.2 |
8.2 |
要了解更多信息,请参阅更新 Gradle。 |
SDK 构建工具 |
34.0.0 |
34.0.0 |
安装或配置 SDK 构建工具。 |
NDK |
不适用 |
25.1.8937393 |
安装或配置不同版本的 NDK。 |
JDK |
17 |
17 |
要了解更多信息,请参阅设置 JDK 版本。 |
指定 JDK 路径的新宏
#GRADLE_LOCAL_JAVA_HOME
是一个新的宏,可用于指定 JDK 路径。这使得为项目指定用于 Gradle 后台进程执行的 Java 主目录路径更安全、更轻松。路径选择存储在 .gradle/config.properties
文件中的 java.home
字段中。可在 Android Studio 的 Gradle JDK 设置中设置此字段:File(或 macOS 上的 Android Studio)> Settings > Build, Execution, Deployment > Build Tools > Gradle。
新项目默认使用 #GRADLE_LOCAL_JAVA_HOME
。现有项目在成功同步后会自动迁移到新宏,除非您已在使用 #JAVA_HOME
等宏。
新宏的主要优势如下
- 您可以手动修改 JDK 路径以触发同步,而无需先打开项目。
- 由于 Gradle JDK 选择有一个单一的真相来源,因此与不兼容的 Gradle 和项目 JDK 版本相关的错误会更少。
已修复问题
Android Gradle 插件 8.2.0
已修复问题 |
Android Gradle 插件 |
自定义源类型应创建多 flavor 源集
|
SDK 版本检查不处理 SDK 扩展用户
|
DependenciesInfoBuilder 需要 API 更新 + 文档
|
针对 Java 11 的 DexingNoClasspathTransform (minSdk >= 24) 因缺少嵌套成员而失败
|
DslExtension.Builder.extendProjectWith() 在 Groovy 中未按描述工作
|
添加不使用 kotlin.Pair 的 VariantSelector.withFlavor API
|
AndroidLintAnalysisTask ( :lintAnalyzeExternalRelease) 出现缓存未命中,因为 `proguard.txt` 已更改
|
应用合并清单包含来自依赖项的 extractNativeLibs 和 useEmbeddedDex 属性
|
AIDL 在 build-tools 33.0.0 中失败
|
AGP:将 AIDL 工具和框架 AIDL 文件的路径作为公共 API 公开
|
请求:让 IDE 为“PermittedSubclasses requires ASM9”提供修复
|
编译 AGP 时目标字节码为 17
|
移除 VariantManager.getModifiedName
|
AndroidTest.packaging.jniLibs.keepDebugSymbols 不影响 androidTest 打包
|
GMD 插桩测试任务挂起,重试时开始失败
|
agp 8.1.0 中的 generateLocaleConfig 使用非确定性排序,破坏了可重现构建
|
ProcessApplicationManifest.navigationJsons 具有包含绝对路径的文件
|
在创建 AnalyticsService 后,不允许通过 AnalyticsConfiguratorService 访问 GradleBuildProject.Builder
|
AndroidTest.packaging.jniLibs.keepDebugSymbols 不影响 androidTest 打包
|
允许编译非法颜色值
|
VariantBuilder 的“ReplaceWith”不正确
|
Gradle 8.1 因 .gradle/.android/analytics.settings 导致配置缓存中断
|
弃用消息不使用 `ReplaceWith`
|
公开获取默认 NDK 版本的方法
|
Android Gradle 插件需要 Java 17 才能运行。
|
ASM Transform 和 toAppend() 不兼容
|
修复在 KMP 项目上通过 Gradle 使用 K2 UAST 运行 lint 时的 LintErrors
|
支持 Variant 级别的 missingDimensionStrategy,以及可能的 build type/flavor matchingFallback
|
在 Android Studio Giraffe 中移除了 `android.injected.studio.version`
|
添加禁用 AndroidXDependencyCheck 的功能
|
agp 8.1.0 中的 generateLocaleConfig 使用非确定性排序,破坏了可重现构建
|
在 AAR 元数据中公布 R8 / D8 版本要求(例如,针对 coreLibraryDesugaring 和新的 API out-of-lining)
|
同步警告:“在 AnalyticsService 创建后,不应通过 AnalyticsConfiguratorService 访问 GradleBuildProject.Builder”
|
更新到 Gradle 8.2 里程碑或 RC
|
无法访问 'java.lang.Comparable'
|
android library 模块中 androidResources 不可用
|
从 AGP 8.0.2 更新到 8.1.0 后,任务 ':app:mergeReleaseClasses' 执行失败
|
Gradle 8.1 因 .gradle/.android/analytics.settings 导致配置缓存中断
|
[AGP 8.1.0] 如果 splits.abi.isEnable 和 testOptions.unitTests.isIncludeAndroidResources 都为 true,则 ./gradlew test 会因“无法找到清单输出”而失败
|
Android Studio Giraffe 不尊重 AGP 8.1 的 versionCodeOverride 设置
|
AGP 8.1.0 在运行插桩测试后卸载应用 - 7.4.2 不会
|
转换 APK 会导致 ListingFileRedirectTask 错误
|
HEDGEHOG 回归:运行按钮延迟了几秒(Creating spec)
|
|
Dexer (D8) |
为 min-api 34 及以上版本进行 dexing 时启用原生记录和密封类
|
|
Lint |
实例化 Lint 检查无法很好地处理 AppComponentFactory
|
Lint 8.2.0 alpha 版本仍不支持 kotlin 中的顶层函数导入
|
添加一个选项,用于不在 lint 基线中包含行号和列号
|
添加一个选项,用于不在 lint 基线中包含行号和列号
|
Lint 测试不支持 Java 17 语言功能
|
Bumblebee 2021.1.1 Patch 1 提示 commons-io 的旧版本 (20030203.000550) 比 2.11.0 新。
|
Lint 8.2.0 alpha 版本仍不支持 kotlin 中的顶层函数导入
|
Bumblebee 2021.1.1 Patch 1 提示 commons-io 的旧版本 (20030203.000550) 比 2.11.0 新。
|
Android Studio 不正确地将指定版本标记为过时。
|
使用 K2 UAST 时,Lint 忽略 UseValueOf 问题
|
Android Lint 标记了来自另一个项目的意外问题
|
Android Lint 在 KMP 库上失败,并显示 `property 'variantInputs.name' doesn't have a configured value.`
|
|
Lint 集成 |
testImplementation 依赖项导致的 DuplicatePlatformClasses lint 错误
|
|
代码缩减器 (R8) |
java.lang.VerifyError: 验证器拒绝类
|
使用 Apache POI 库时,构建任务 :minifyReleaseWithR8 卡住
|
如果剥离 nullchecks,Kotlin 1.9 会导致 Kotlin lambda 被 R8 破坏
|
|
Android Gradle 插件 8.2.1
已修复问题 |
Android Gradle 插件 |
当子项目的类已通过 artifact transforms 进行 dex 处理时,不要在其上运行 dexing 任务
|
Android Gradle 插件在使用 JavaVersion.VERSION_11 和 OpenJDK 21 ea 时失败
|
|
Dexer (D8) |
为 Android U desugar records
|
|
代码缩减器 (R8) |
R8 生成损坏的 dex,导致运行时出现类转换异常
|
R8 导致接口更改为不可访问的接口
|
使用 AGP 8.2.0 时,R8 导致 Flurry SDK 崩溃
|
Android - R8 导致 LinearLayoutManager 的子类崩溃
|
R8 在开启 repackaging 并关闭 shrinking、混淆和优化时出现 ClassCastException
|
R8 卡在 BridgeAnalyzer.analyzeMethod 中
|
R8 v8.2.33,升级后运行时崩溃,“java.lang.VerifyError: Bad type on operand stack”
|
|
Android Gradle 插件 8.2.2
已修复问题 |
Android Gradle 插件 |
无法在 AGP 8.2.0 中设置 JaCoCo 版本
|
|
Dexer (D8) |
[desugared library] Desugared library 版本 2.1 与 R8 的先前版本不兼容
|
即使只使用 D8,也会运行优化?
|
|
代码缩减器 (R8) |
[R8 8.3.21] R8 8.3.21 比 R8 8.1.56 大 1.57MB
|
class.getInterfaces() 返回空
|
|
本页面上的内容和代码示例受内容许可中描述的许可条款约束。Java 和 OpenJDK 是 Oracle 和/或其关联公司的商标或注册商标。
最后更新时间 2025-06-13 UTC。
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["缺少我需要的信息","missingTheInformationINeed","thumb-down"],["太复杂 / 步骤太多","tooComplicatedTooManySteps","thumb-down"],["已过时","outOfDate","thumb-down"],["示例 / 代码问题","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 2025-06-13 UTC."],[],[]]