Android Gradle 插件 7.2.0(2022 年 5 月)

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

7.2.2(2022 年 8 月)

本次要更新对应于 Android Studio Chipmunk 补丁 2,并包含以下 bug 修复:

  • 问题 232438924:与 ASM API 一起使用时,AndroidGradlePlugin 版本 7.2 会破坏转换 API
  • 问题 231037948:AGP 7.2.0-rc01 :buildSrc:generatePrecompiledScriptPluginAccessors - shadow/bundletool/com/android/prefs/AndroidLocation$AndroidLocationException
7.2.1(2022 年 5 月)

本次要更新对应于 Android Studio Chipmunk 补丁 1,并包含以下 bug 修复:

如需查看此版本中包含的其他 bug 修复,请参阅 Android Studio Chipmunk 补丁 1 版本说明

兼容性

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

Build Analyzer 中的 Jetifier 警告和检查

现在,如果项目的 gradle.properties 文件包含 android.enableJetifier=true,Build Analyzer 会显示警告。该标志是在之前的 Android Studio 版本中引入的,旨在为不能原生支持 AndroidX 的库启用 AndroidX。不过,库生态系统大多已经变为能够原生支持 AndroidX,因此您的项目可能不再需要 Jetifier 标志了。此外,该标志可能会降低 build 性能。如果您看到此警告,可以在 Build Analyzer 中运行检查,以确认是否可以移除该标志。

支持测试固件

从 Android Studio Chipmunk Beta 1 开始,Android Studio 支持 Android 和 Java 测试固件。如需详细了解测试固件功能以及如何在 Java 项目中使用该功能,请参阅与如何使用测试固件{:.external}相关的 Gradle 指南。

如需在 Android 库模块中启用测试固件,请将以下代码添加到库级 build.gradle 文件中:

android {
  testFixtures {
    enable true
    // enable testFixtures's android resources (disabled by default)
    // androidResources true
  }
}

默认情况下,如果您发布库,则会同时发布测试固件 AAR 和主库。Gradle 模块元数据文件将包含 Gradle 的信息,以便在请求 testFixtures 组件时能够使用正确的工件。

如需停止在发布变体中发布库的测试固件 AAR,请将以下代码添加到库级 build.gradle 文件中:

afterEvaluate {
  components.release.withVariantsFromConfiguration(
    configurations.releaseTestFixturesVariantReleaseApiPublication) { skip() }
  components.release.withVariantsFromConfiguration(
    configurations.releaseTestFixturesVariantReleaseRuntimePublication) { skip() }
}

如需使用已发布 Android 库的测试固件 AAR,您可以使用 Gradle 的辅助方法 testFixtures()

dependencies {
  testImplementation testFixtures('com.example.company:publishedLib:1.0')
}

默认情况下,lint 会分析测试固件来源。您可以对 lint 进行配置,指示其忽略测试固件来源,具体代码如下所示:

android {
  lint {
    ignoreTestFixturesSources true
  }
}

不支持重复的内容根

从 AGP 7.2 开始,您无法在多个源代码集之间共享同一个源目录。例如,您不能在单元测试和插桩测试中使用相同的测试源。如需了解详情,请参阅更改默认源代码集配置