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 构建工具 35.0.0 35.0.0 安装配置 SDK 构建工具。
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] Lazy SdkComponents.ndkDirectory provider 无法生成值,但 eager android.ndkDirectory API 可以
构建选项:添加新的“Build Run configuration”选项并将其设置为默认
当使用 android.enableBuildConfigAsBytecode=true 时,BuildConfig 在单元测试中无法解析
从 Bundles 生成的 Apks 未考虑 Privacy Sandbox 支持
com.android.settings 插件无法识别 targetSdk
Dexer (D8)
Desugar library 2.1.0 不适用于 AGP 8.5.2
Lint
KtAnalysisSessionProvider 与 8.7.0-alpha04 中引入的 lint 检查不兼容
在 Kotlin 中使用 PackageManager.ResolveInfoFlags.of 时,“False positive” 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 - Lint False Positive RestrictedApi on NavOptionsBuilder.popUpTo
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 仅授予系统应用
K2 模式在使用 Android Studio 中的 .hasRoute(Route::class) 时抛出 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 [...]
Enqueuer 中与 record DexCallSite 相关的 NPE
R8 8.7.18 在调用 job?.cancel 时导致运行时空指针异常
java.lang.NoClassDefFoundError: Failed resolution of: Lkotlin/LazyThreadSafetyMode
Monzo 似乎在代码剪枝上花费了过多的时间
AGP 8.8 发布构建失败: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 崩溃