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 可正常运行
构建选项:添加新的“构建运行配置”选项并将其设为默认选项
使用 android.enableBuildConfigAsBytecode=true 时,无法在单元测试中解析 BuildConfig
从 Bundle 生成的 APK 未考虑 Privacy Sandbox 支持
com.android.settings 插件无法识别 targetSdk
Dexer (D8)
Desugar 库 2.1.0 不适用于 AGP 8.5.2
lint
KtAnalysisSessionProvider 与 8.7.0-alpha04 中引入的 lint 检查不兼容
使用 PackageManager.ResolveInfoFlags.of 和 Kotlin 时出现“假正例”WrongConstant
设置 http 或 https intent-filter 方案时出现“必须至少指定一个主机”lint 错误
在更多情况下处理 UnknownNullness lint 的类型使用注释
AGP 8.6.1:回归 - 在 Kotlin 中使用 @LongDef 内的 [Int].toLong() 时出现 WrongConstant lint 失败
AGP 8.7.0 - Lint 在 NavOptionsBuilder.popUpTo 上出现 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
R8 8.7.18 在调用 job?.cancel 时导致运行时 null 指针异常
java.lang.NoClassDefFoundError:无法解析 Lkotlin/LazyThreadSafetyMode
Monzo 似乎在树状结构摇动中花费了过多的时间
AGP 8.8 无法构建发布版本:R8:java.lang.NullPointerException:无法读取字段“b”,因为“com.android.tools.r8.internal.BS.a(com.android.tools.r8.internal.cR)”的返回值是 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 崩溃