Android Gradle 插件 8.8.0(2025 年 1 月)

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

兼容性

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

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

修复的问题

Android Gradle 插件 8.8.2

已修复的问题
Android Gradle 插件
初始化脚本“C:\Users\mypc\AppData\Local\Temp\ijresolvers2.gradle”第 162 行
缩减器 (R8)
升级到 AGP 8.8 后,Gson ProGuard 无法正常运行
java.lang.VerifyError:验证程序拒绝了类
使用 AGP 8.10.0-alpha04 中包含的 R8 缩减大小时,Leanback 会发生崩溃

Android Gradle 插件 8.8.1

已修复的问题
Dexer (D8)
添加了 OpenJDK 23 以进行测试
缩减器 (R8)
java.lang.AbstractMethodError: Receiver class […]$$Lambda$[…] does not define or inherit an implementation of the resolved method […] of interface […]
Enqueuer 中与记录 DexCallSite 相关的 NPE
R8 8.7.18 在调用 job?.cancel 时会导致运行时 null 指针异常
java.lang.NoClassDefFoundError:无法解析:Lkotlin/LazyThreadSafetyMode
Monzo 似乎在摇树优化方面花费了过多时间
AGP 8.8 无法构建发布 build:R8: java.lang.NullPointerException: Cannot read field "b" because the return value of "com.android.tools.r8.internal.BS.a(com.android.tools.r8.internal.cR)" is null`

Android Gradle 插件 8.8.0

已修复的问题
Android Gradle 插件
考虑将 JacocoTransform 的输入类型注解为 @Classpath
com.android.build.api.variant.GeneratesApk 应公开 minSdk
com.android.settings 插件无法识别 targetSdk
SourceDirectories.addGeneratedSourceDirectory 对多个变体不友好
实现用于停用 AGP 最低版本检查的标志
AGP 与配置 Kotlin 编译器选项的交互令人困惑
AGP 应在 com.android.test 项目中为目标项目 APK 公开 BuiltArtifactLoader
[AGP] 延迟 SdkComponents.ndkDirectory 提供程序无法生成值,但 Eager android.ndkDirectory API 可以正常运行
构建选项:添加了新的“构建运行配置”选项,并将其设为默认选项
使用 android.enableBuildConfigAsBytecode=true 时,无法在单元测试中解析 BuildConfig
从 bundle 生成的 APK 不考虑 Privacy Sandbox 支持
com.android.settings 插件无法识别 targetSdk
Dexer (D8)
脱糖库 2.1.0 不适用于 AGP 8.5.2
lint
KtAnalysisSessionProvider 与 8.7.0-alpha04 中引入的 lint 检查不兼容
将 PackageManager.ResolveInfoFlags.of 与 Kotlin 搭配使用时,出现“假正例”WrongConstant
设置 http 或 https intent-filter scheme 时出现“At least one host must be specified”lint 错误
在更多情况下处理 UnknownNullness lint 的类型使用注解
AGP 8.6.1:回归问题 - 在 Kotlin 中的 @LongDef 内使用 [Int].toLong() 时,WrongConstant lint 失败
AGP 8.7.0 - NavOptionsBuilder.popUpTo 上的 Lint 假正例 RestrictedApi
WrongConstant lint 出现两次
Android Studio 未捕获“MonochromeLauncherIcon: Monochrome icon is not defined”警告
AbstractAnnotationDetector 会检查错误的重载函数/构造函数
Lint ImportAliasTestMode 不会为顶级函数创建导入别名
WrongConstant lint 出现两次
AGP 8.8 中新增了 ObsoleteSdkInt lint 警告
lint 检查误报:android.permission.SCHEDULE_EXACT_ALARM 仅授予系统应用
在 Android Studio 中使用 .hasRoute(Route::class) 时,K2 模式会抛出 RestrictedApi 警告
lint 集成
评估后未找到 lint 变体任务
导入包含实现文件的 AAR 文件时,Lint 检查失败