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.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 提供程序无法生成值,但提前 android.ndkDirectory API 有效
构建选项:添加了新的“Build Run configuration”(构建运行配置)选项,并将其设为默认选项
使用 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 检查不兼容
将 Kotlin 与 PackageManager.ResolveInfoFlags.of 搭配使用时,出现“假正例”WrongConstant
设置 http 或 https intent-filter 架构时出现“必须至少指定一个主机”lint 错误
在更多情况下处理 UnknownNullness lint 的类型使用注解
AGP 8.6.1:回归 - 在 Kotlin 中使用 @LongDef 内的 [Int].toLong() 时,lint 会失败并报告 WrongConstant
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 会失败

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 [...]
与记录 DexCallSite 相关的 Enqueuer 中的 NPE
调用 job?.cancel 时,R8 8.7.18 会导致运行时 null 指针异常
java.lang.NoClassDefFoundError: Failed resolution of: 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.2

已修复的问题
Android Gradle 插件
初始化脚本“C:\Users\mypc\AppData\Local\Temp\ijresolvers2.gradle”第 162 行
缩减器 (R8)
升级到 AGP 8.8 后,Gson Proguard 无法正常运行
java.lang.VerifyError: Verifier rejected class
使用 AGP 8.10.0-alpha04 中包含的 R8 进行缩减时,Leanback 会崩溃