Android Gradle 插件 8.7 版本说明

JCenter 存储库已于 2021 年 3 月 31 日变为只读。更多信息,请参阅 JCenter 服务更新

Android Studio 构建系统基于 Gradle,Android Gradle 插件添加了一些特定于构建 Android 应用的功能。虽然 Android Gradle 插件 (AGP) 通常与 Android Studio 同步更新,但该插件(以及 Gradle 系统的其余部分)可以独立于 Android Studio 运行并单独更新。

此页面说明如何使您的 Gradle 工具保持最新状态以及最近更新的内容。有关过去 Android Gradle 插件版本的版本说明,请参阅 过去的版本说明

要查看此版本的 Android Gradle 插件中已修复的内容,请参阅 已关闭的问题

有关 Android Gradle 插件即将推出的重大更改的高级摘要,请参阅 Android Gradle 插件路线图

有关如何使用 Gradle 配置 Android 构建的详细信息,请参阅以下页面

有关 Gradle 构建系统的更多信息,请参阅 Gradle 用户指南

更新 Android Gradle 插件

更新 Android Studio 时,您可能会收到提示,建议您自动将 Android Gradle 插件更新到最新可用版本。您可以选择接受更新或根据项目的构建要求手动指定版本。

您可以在 Android Studio 中的**文件** > **项目结构** > **项目**菜单或顶层 build.gradle.kts 文件中指定插件版本。插件版本适用于在该 Android Studio 项目中构建的所有模块。以下示例从 build.gradle.kts 文件中将插件设置为 8.7.0 版本

Kotlin

plugins {
    id("com.android.application") version "8.7.0" apply false
    id("com.android.library") version "8.7.0" apply false
    id("org.jetbrains.kotlin.android") version "2.0.20" apply false
}

Groovy

plugins {
    id 'com.android.application' version '8.7.0' apply false
    id 'com.android.library' version '8.7.0' apply false
    id 'org.jetbrains.kotlin.android' version '2.0.20' apply false
}

警告:您不应在版本号中使用动态依赖项,例如 'com.android.tools.build:gradle:8.7.+'。使用此功能可能会导致意外的版本更新和难以解决版本差异。

如果尚未下载指定的插件版本,Gradle 将在下次构建项目或点击 Android Studio 菜单栏中的**文件** > **使用 Gradle 文件同步项目**时下载它。

更新 Gradle

更新 Android Studio 时,您可能会收到提示,建议您也将 Gradle 更新到最新可用版本。您可以选择接受更新或根据项目的构建要求手动指定版本。

下表列出了每个版本的 Android Gradle 插件所需的 Gradle 版本。为了获得最佳性能,您应使用 Gradle 和插件的最新版本。

插件版本最低所需的 Gradle 版本
8.78.9
8.68.7
8.58.7
8.48.6
8.38.4
8.28.2
8.18.0
8.08.0
7.47.5

较旧的版本

插件版本所需的 Gradle 版本
7.37.4
7.27.3.3
7.17.2
7.07.0
4.2.0+6.7.1
4.1.0+6.5+
4.0.0+6.1.1+
3.6.0 - 3.6.45.6.4+
3.5.0 - 3.5.45.4.1+
3.4.0 - 3.4.35.1.1+
3.3.0 - 3.3.34.10.1+
3.2.0 - 3.2.14.6+
3.1.0+4.4+
3.0.0+4.1+
2.3.0+3.3+
2.1.3 - 2.2.32.14.1 - 3.5
2.0.0 - 2.1.22.10 - 2.13
1.5.02.2.1 - 2.13
1.2.0 - 1.3.12.2.1 - 2.9
1.0.0 - 1.1.32.2.1 - 2.3

您可以通过 Android Studio 中的**文件** > **项目结构** > **项目**菜单指定 Gradle 版本,也可以使用命令行更新 Gradle 版本。推荐使用 Gradle Wrapper 命令行工具,该工具会更新 gradlew 脚本。以下示例使用 Gradle Wrapper 将 Gradle 版本设置为 8.7。请注意,您需要运行此命令两次才能同时升级 Gradle 和 Gradle Wrapper 本身(更多信息,请参阅 升级 Gradle Wrapper)。

gradle wrapper --gradle-version 8.7

但是,在某些情况下这可能会失败,例如,如果您刚刚更新了 AGP,并且它不再与当前的 Gradle 版本兼容。在这种情况下,您需要编辑 gradle/wrapper/gradle-wrapper.properties 文件中的 Gradle 分发引用。以下示例在 gradle-wrapper.properties 文件中将 Gradle 版本设置为 8.7。

...
distributionUrl = https\://services.gradle.org/distributions/gradle-8.7-bin.zip
...

Android Gradle 插件和 Android Studio 兼容性

Android Studio 构建系统基于 Gradle,而 Android Gradle 插件 (AGP) 添加了一些特定于构建 Android 应用的功能。下表列出了每个 Android Studio 版本所需的 AGP 版本。

Android Studio 版本 所需 AGP 版本
Ladybug | 2024.2.1 3.2-8.7
Koala Feature Drop | 2024.1.2 3.2-8.6
Koala | 2024.1.1 3.2-8.5
Jellyfish | 2023.3.1 3.2-8.4
Iguana | 2023.2.1 3.2-8.3
Hedgehog | 2023.1.1 3.2-8.2
Giraffe | 2022.3.1 3.2-8.1
Flamingo | 2022.2.1 3.2-8.0

较旧的版本

Android Studio 版本 所需 AGP 版本
Electric Eel | 2022.1.1 3.2-7.4
Dolphin | 2021.3.1 3.2-7.3
Chipmunk | 2021.2.1 3.2-7.2
Bumblebee | 2021.1.1 3.2-7.1
Arctic Fox | 2020.3.1 3.1-7.0

有关 Android Gradle 插件新增功能的信息,请参阅 Android Gradle 插件发行说明

Android API 级别工具的最低版本

支持特定 API 级别有 Android Studio 和 AGP 的最低版本。使用低于项目 targetSdkcompileSdk 所需的 Android Studio 或 AGP 版本可能会导致意外问题。我们建议使用最新预览版的 Android Studio 和 AGP 来处理面向 Android 操作系统预览版的项目。您可以 并行安装 Android Studio 的预览版和稳定版

Android Studio 和 AGP 的最低版本如下所示

API 级别 最低 Android Studio 版本 最低 AGP 版本
35 Koala Feature Drop | 2024.2.1 8.6.0
34 Hedgehog | 2023.1.1 8.1.1
33 Flamingo | 2022.2.1 7.2

版本变更 (2020 年 11 月)

我们正在更新 Android Gradle 插件 (AGP) 的版本编号,使其更 closely 匹配底层的 Gradle 构建工具。

以下是值得注意的更改

  • AGP 现在将使用语义版本控制,重大更改将针对主要版本。

  • 每年将发布一个主要版本的 AGP,与 Gradle 主要版本保持一致。

  • AGP 4.2 之后的发行版本将为 7.0 版,这需要升级到 Gradle 7.x 版。每个主要版本的 AGP 都需要底层 Gradle 工具的主要版本升级。

  • API 将提前大约一年弃用,同时提供替换功能。弃用的 API 将在大约一年后的后续主要更新中删除。

兼容性

Android Gradle 插件 8.6 支持的最高 API 级别是 API 级别 34。以下是其他兼容性信息

最低版本 默认版本 备注
“Gradle” 8.9 8.9 “要了解更多信息,请参阅 更新 Gradle。”
SDK 构建工具 34.0.0 34.0.0 安装配置 SDK 构建工具。
NDK N/A 27.0.12077973 安装配置 不同版本的 NDK。”
JDK 17 17 “要了解更多信息,请参阅 设置 JDK 版本。”

Lint 行为更改

从 Android Gradle Plugin 8.7.0-alpha08 开始,如果使用 Gradle 运行 lint 时出现 LintError,则 lint 分析任务会抛出异常。此更改可防止罕见的错误缓存在构建缓存中。

不幸的是,此更改会破坏 lint 基线文件中存在真正 LintError 实例的项目的构建。错误消息包含有关哪些 lint 检查导致问题的信息。在某些情况下,更新相应的库依赖项可能会解决问题。如果不行,您可以禁用有问题的 lint 检查,直到库作者修复它。

已修复的问题

Android Gradle 插件 8.7.0

已修复的问题
Android Gradle 插件
AGP 应声明它支持即将发布的 API 35
AGP 8.5:运行了更多“mergeDebugResources”任务,从而减慢了构建速度
在 AGP 中将 ndk 27 设为默认 NDK。
AGP 应声明它支持即将发布的 API 35
AGP 应声明它支持即将发布的 API 35
运行 Android lint 失败,并出现 NoSuchFileException
BuildType#initWith 复制后处理块,但未应用 proguard 配置
无法合并 foregroundServiceType 标记
运行 Android lint 失败,并出现 NoSuchFileException
Lint
Lint 应检查用作 ViewGroup 的无效对象
主机为空的 uri 的“android:host 丢失”
KtAnalysisSessionProvider 与 8.7.0-alpha04 中引入的 lint 检查不兼容
使用 Kotlin 时,“误报”WrongConstant

Android Gradle 插件 8.7.1

已修复的问题
Android Gradle 插件
agp 文档有很多待办事项
Lint
AGP 8.6.1:回归 - 使用 Kotlin 中的 [Int].toLong() 时出现 WrongConstant lint 故障
设置 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 客户端出现内存不足错误