Android Gradle 插件 8.7.0 是一个主要版本,包含各种新功能和改进。
兼容性
Android Gradle 插件 8.7 支持的 API 级别上限为 API 35。以下是其他兼容性信息:
|
最低版本 |
默认版本 |
备注 |
“Gradle” |
8.9 |
8.9 |
“如需了解详情,请参阅更新 Gradle。” |
SDK Build Tools |
34.0.0 |
34.0.0 |
安装或配置 SDK Build Tools。 |
NDK |
不适用 |
27.0.12077973 |
“安装或配置其他版本的 NDK。” |
JDK |
17 |
17 |
“如需了解详情,请参阅设置 JDK 版本。” |
lint 行为变更
从 Android Gradle 插件 8.7.0-alpha08 开始,如果使用 Gradle 运行 lint 时存在 LintError
,lint 分析任务会抛出异常。此更改可防止罕见错误缓存在构建缓存中。
遗憾的是,这项更改会破坏 lint 基准文件中包含真实 LintError
实例的项目的 build。错误消息包含有关哪些 lint 检查导致问题的信息。在某些情况下,更新相应的库依赖项可能会解决问题。如果没有,您可以停用存在问题的 lint 检查,直到库作者解决该问题。
修复的问题
Android Gradle 插件 8.7.0
已修复的问题 |
Android Gradle 插件 |
AGP 应声明其支持即将发布的 API 35
|
AGP 8.5:运行了更多“mergeDebugResources”任务,导致构建速度变慢
|
将 ndk 27 设为 AGP 中的默认 NDK。
|
AGP 应声明其支持即将发布的 API 35
|
AGP 应声明其支持即将发布的 API 35
|
运行 Android lint 失败并显示 NoSuchFileException
|
BuildType#initWith 会复制后处理块,但不会应用 ProGuard 配置
|
无法合并 foregroundServiceType 标记
|
运行 Android lint 失败并显示 NoSuchFileException
|
|
lint |
lint 应检查是否有用作 ViewGroup 的无效对象
|
主机为 null 的 URI 缺少“android:host”
|
KtAnalysisSessionProvider 与 8.7.0-alpha04 中引入的 lint 检查不兼容
|
将 Kotlin 与 PackageManager.ResolveInfoFlags.of 搭配使用时,出现“假正例”WrongConstant
|
|
Android Gradle 插件 8.7.1
已修复的问题 |
Android Gradle 插件 |
|
lint |
AGP 8.6.1:回归 - 在 Kotlin 中使用 @LongDef 内的 [Int].toLong() 时,lint 会失败并报告 WrongConstant
|
设置 http 或 https intent-filter 架构时出现“必须至少指定一个主机”lint 错误
|
|
Android Gradle 插件 8.7.2
已修复的问题 |
lint |
AGP 8.7.0 - 针对 NavOptionsBuilder.popUpTo 的 lint 假正例 RestrictedApi
|
|
缩减器 (R8) |
[R8 8.6.27] 方法实现已替换为“throw null”
|
默认的 Android ProGuard 文件在与当前版本的 R8 搭配使用时会抛出警告
|
如果消息过大,MissingStartupProfileItemsDiagnostic 会导致 Gradle 客户端崩溃并出现内存不足错误
|
|
Android Gradle 插件 8.7.3
已修复的问题 |
lint |
运行 lint 时,许多分析 API 方法警告缺失
|
lint 检查误报:android.permission.SCHEDULE_EXACT_ALARM 仅授予系统应用
|
|