Android Gradle 插件 8.3.0(2024 年 2 月)

Android Gradle 插件 8.3.0 是一个主要版本,包含各种新功能和改进。

兼容性

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

最低版本 默认版本 备注
Gradle 8.4 8.4 如需了解详情,请参阅更新 Gradle
SDK Build Tools 34.0.0 34.0.0 安装配置 SDK Build Tools。
NDK 不适用 25.1.8937393 安装配置其他版本的 NDK。
JDK 17 17 如需了解详情,请参阅设置 JDK 版本

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

补丁版本

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

Android Studio Iguana | 2023.2.1 补丁 2 和 AGP 8.3.2(2024 年 4 月)

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

Android Studio Iguana | 2023.2.1 补丁 1 和 AGP 8.3.1(2024 年 3 月)

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

支持 Gradle 版本目录

Android Studio 支持基于 TOML 的 Gradle 版本目录,借助此功能,您可以在一个集中位置管理依赖项,并跨模块或项目共享依赖项。Android Studio 现在可让您通过编辑器建议以及与 Project Structure 对话框集成来更轻松地配置版本目录。了解如何设置和配置 Gradle 版本目录或如何将 build 迁移到版本目录

代码补全和导航

当您以 TOML 文件格式修改版本目录或将依赖项从版本目录添加到 build 文件时,Android Studio 会提供代码补全功能。如需使用代码补全功能,请按 Ctrl + 空格键(在 macOS 中,按 Command + 空格键)。此外,您还可以按 Ctrl+b(在 macOS 中,按 Command+b)快速从应用的 build.gradle 文件中的依赖项引用导航到版本目录中声明的位置。

添加依赖项时的代码补全功能

与“Project Structure”对话框集成

如果您的项目使用以 TOML 文件格式定义的版本目录,您可以在 Android Studio 中通过 Project Structure 对话框的 Variables 视图 (File > Project Structure > Variables) 修改已在其中定义的变量。 每个版本目录都有一个下拉列表,其中列出了该目录中的变量。若要修改变量,请点击其值,然后覆盖它。保存这些更改后,TOML 文件会进行相应的更新。

“Project Structure”对话框中版本目录中的变量

您还可以在 Project Structure 对话框的 Dependencies 视图 (File > Project Structure > Dependencies) 中更新依赖项。如需使用 Project Structure 对话框更新版本,请找到要修改的模块和依赖项,然后更新 Requested Version 字段。保存这些更改后,TOML 文件会进行相应的更新。请注意,如果依赖项版本是使用变量定义的,则直接以这种方式更新版本会将该变量替换为硬编码值。另请注意,无论您是否使用 Project Structure 对话框,从 build 文件中移除某个依赖项并不会从版本目录中移除该依赖项。

“Project Structure”对话框中版本目录中的依赖项

已知问题和限制

以下是 Android Studio 中的 Gradle 版本目录支持的已知问题或限制。

  • 突出显示 Kotlin 脚本文件中的插件别名声明时出错:如果您添加 alias(libs.plugins.example) 形式的插件声明,编辑器会在 libs 部分下方添加一条红色下划线。这是 Gradle 8.0 及更低版本中的已知问题,并将在未来的 Gradle 版本中解决。

  • Android Studio 仅支持 TOML 格式的版本目录:目前,Android Studio 代码补全、导航和“Project Structure”对话框支持仅适用于以 TOML 文件格式定义的版本目录。不过,您仍然可以直接在 settings.gradle 文件中添加版本目录,并在项目中使用其依赖项。

  • 不支持 KTS build 文件导航:对于使用 Kotlin 脚本编写的 build 文件,尚不支持使用 Ctrl + 点击键(在 macOS 上,按 Command + 点击)前往版本目录中的依赖项定义。

  • Firebase Assistant 直接在构建脚本中添加依赖项:Firebase Assistant 可直接将依赖项添加到您的构建脚本中,而不是通过版本目录添加。

  • 不支持“Find usages”功能:尚不支持在其他 build 文件中查找版本目录变量的使用情况,无论 build 文件是在 KTS 中还是 Groovy 中。也就是说,在版本目录中的变量定义上按住 Ctrl + 点击(在 macOS 上,按住 Command + 点击)不会转到使用该变量的 build 文件。

  • Android Studio 中的“Project Structure”对话框会显示多个目录文件(如果这些文件位于根 gradle 文件夹中),但不显示复合 build 的目录。例如,如果您有两个目录文件,一个用于应用,一个用于复合 build,则“Project Structure”对话框仅显示应用目录文件。您可以使用复合 build,但必须直接修改其 TOML 文件。

更多 SDK 数据分析:政策问题

对于在 Google Play SDK 索引中违反 Play 政策的公共 SDK,Android Studio 会在 build.gradle.ktsbuild.gradle 文件以及“Project Structure”对话框中显示 lint 警告。您应更新所有违反 Play 政策的依赖项,因为这些违规行为可能会导致您日后无法将应用发布到 Google Play 管理中心。这些违反政策警告是对 Android Studio 显示的过时版本警告的补充。

Android Studio compileSdk 版本支持

如果您的项目使用的 compileSdk 不受 Android Studio 当前版本支持,Android Studio 会显示警告。此外,我们还建议您改用支持项目所用 compileSdk 的 Android Studio 版本(如果有)。请注意,升级 Android Studio 可能还需要升级 AGP。如果当前版本的 AGP 不支持项目使用的 compileSdk,AGP 还会在 Build 工具窗口中显示警告。

Lint 行为变更

从 Android Gradle 插件 8.3.0-alpha02 开始,在模块上运行 lint 时,系统会针对该模块的主要组件和测试组件运行单独的 lint 分析任务。我们进行这项更改是为了提高性能。 如需还原到之前的行为,请在 gradle.properties 文件中设置 android.experimental.lint.analysisPerComponent=false

默认开启精确资源缩减

精确资源缩减功能默认处于开启状态,用于从 resources.arsc 文件中移除未使用的条目并清除未使用的资源文件。启用此缩减功能后,资源表会缩减,且 APK 中只会包含引用的 res 文件夹条目。

如需关闭精确资源缩减,请在项目的 gradle.properties 文件中将 android.enableNewResourceShrinker.preciseShrinking 设置为 false