Android Gradle 插件 8.4 版本说明

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 build,请参阅以下页面:

如需详细了解 Gradle 构建系统,请参阅 Gradle 用户指南

更新 Android Gradle 插件

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

您可以在 Android Studio 的 File > Project Structure > Project 菜单中指定插件版本,也可以在顶级 build.gradle.kts 文件中指定。该插件版本适用于在相应 Android Studio 项目中构建的所有模块。以下示例从 build.gradle.kts 文件中将插件的版本号设置为 8.4.0:

Kotlin

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

Groovy

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

注意:请勿在版本号中使用动态依赖项(例如 'com.android.tools.build:gradle:8.4.+')。 使用此功能可能会导致意外的版本更新,而且难以解析版本差异。

如果指定的插件版本尚未下载,则 Gradle 会在您下次构建项目时进行下载;或者,您也可以在 Android Studio 菜单栏中依次点击 File > Sync Project with Gradle Files 进行下载。

更新 Gradle

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

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

插件版本所需的最低 Gradle 版本
8.4土耳其里拉
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 的 File > Project Structure > Project 菜单中指定 Gradle 版本,也可以使用命令行更新 Gradle 版本。首选方法是使用 Gradle 封装容器命令行工具,该工具可更新 gradlew 脚本。以下示例使用 Gradle 封装容器将 Gradle 版本设置为 8.4。 请注意,您需要运行此命令两次来升级 Gradle 和 Gradle 封装容器本身(如需了解详情,请参阅升级 Gradle 封装容器)。

gradle wrapper --gradle-version 8.4

不过,此操作在某些情况下可能会失败,例如您刚刚更新了 AGP,导致其不再与当前 Gradle 版本兼容。在这种情况下,您需要修改 gradle/wrapper/gradle-wrapper.properties 文件中的 Gradle 分发引用。以下示例在 gradle-wrapper.properties 文件中将 Gradle 的版本设置为 8.4。

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

Android Gradle 插件和 Android Studio 兼容性

Android Studio 构建系统以 Gradle 为基础,并且 Android Gradle 插件 (AGP) 添加了几项专用于构建 Android 应用的功能。下表列出了各个 Android Studio 版本所需的 AGP 版本。

Android Studio 版本 所需的 AGP 版本
Koala | 2024 年 1 月 1 日 3.2-8.5
水母 | 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 级别所要求的最低工具版本

Android Studio 和 AGP 需要满足最低版本要求才能支持特定 API 级别。如果使用的 Android Studio 或 AGP 版本低于项目的 targetSdkcompileSdk 所要求的版本,可能会导致意外问题。我们建议您使用最新的预览版 Android Studio 和 AGP 来处理以预览版 Android OS 为目标平台的项目。您可以安装 Android Studio 的预览版以及稳定版

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

API 级别 最低 Android Studio 版本 最低 AGP 版本
VanillaIceCream 预览 水母 | 2023.3.1 8.4
34 Hedgehog | 2023.1.1 8.1.1
33 Flamingo | 2022.2.1 7.2

版本编号变更(2020 年 11 月)

我们将更新 Android Gradle 插件 (AGP) 的版本号,以使其更接近底层 Gradle 构建工具。

重要变更如下:

  • AGP 现在将使用语义版本控制,并且重大变更将在主要版本中发布。

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

  • AGP 4.2 之后的版本为版本 7.0,并且会要求升级到 Gradle 7.x 版。AGP 的每个主要版本都会要求在底层 Gradle 工具中进行主要版本升级。

  • API 将提前大约一年废弃,同时提供替代功能。弃用的 API 将在大约一年后的下次主要版本更新期间移除。

兼容性

Android Gradle 插件 8.3 支持的最高 API 级别为 API 级别 34。下面是其他兼容性信息:

最低版本 默认版本 备注
Gradle 土耳其里拉 土耳其里拉 如需了解详情,请参阅更新 Gradle
SDK Build Tools 34.0.0 34.0.0 安装配置 SDK Build Tools。
NDK N/A 26.1.10909125 安装配置其他版本的 NDK。
JDK 17 17 如需了解详情,请参阅设置 JDK 版本

以下是 Android Gradle 插件 8.4 中的新功能。

补丁版本

以下是 Android Studio Jellyfish 和 Android Gradle 插件 8.4 中的补丁版本列表。

Android Studio Jellyfish | 2023.3.1 补丁 2 和 AGP 8.4.2(2024 年 6 月)

重要的安全更新:Android Studio Iguana 中的 GitHub 插件中有一个安全漏洞 | 2023.2.1 及更高版本可能会将访问令牌泄露给未经授权的人员。

修复程序:JetBrains 解决了 IntelliJ 平台产品中的问题,Android Studio Jellyfish | 2023.3.1 补丁 2 (2023.3.1.20) 中现已提供该修复程序。

如果您已有稳定渠道的 Android Studio build,则可以依次点击 Help > Check for Updates(在 macOS 上,依次点击 Android Studio > Check for Updates)来获取更新。否则,请下载最新的稳定版 build

此外,如果您在 IDE 中主动使用了 GitHub 拉取请求功能,我们强烈建议您撤消该插件使用的所有 GitHub 令牌。鉴于该插件可以使用 OAuth 集成或个人访问令牌 (PAT),请同时检查两者,并根据需要将其撤消:

  • 如需撤消 OAuth 集成的访问权限,请前往应用 > 已获授权的 OAuth 应用,然后撤消 JetBrains IDE 集成令牌的访问权限。
  • 如需撤消 PAT 的访问权限,请转到个人访问令牌,然后删除为 GitHub 插件颁发的令牌。默认令牌名称是 IntelliJ IDEA GitHub 集成插件,但您可能使用的是自定义名称。

撤消令牌的访问权限后,您需要重新设置插件,才能让所有插件功能(包括 Git 操作)再次运行。

对于由此带来的任何不便,我们深表歉意。并敦促所有用户立即更新,以保护他们的代码和数据。

Android Studio Jellyfish | 2023.3.1 补丁 1 和 AGP 8.4.1(2024 年 5 月)

此项次要更新包含这些 bug 修复

库类缩减

从 Android Gradle 插件 8.4 开始,如果 Android 库项目缩减了,系统会发布缩减的程序类,以用于项目间发布。这意味着,如果应用依赖于 Android 库子项目的缩减版本,则 APK 将包含缩减的 Android 库类。您可能需要调整库保留规则,以防 APK 中缺少类。

如果您正在构建和发布 AAR,您的库所依赖的本地 JAR 文件将原封不动地包含在 AAR 中,这意味着代码缩减器不会在这些 JAR 上运行。

如需还原为之前的行为,请在 gradle.properties 文件中设置 android.disableMinifyLocalDependenciesForLibraries提交 bug。未来的 AGP 版本将移除此标志,