Android Gradle Plugin 7.2.0 (2022 年 5 月)

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

7.2.2 (2022 年 8 月)

此次次要更新对应于 Android Studio Chipmunk Patch 2 的发布,包含以下 bug 修复

  • Issue #232438924: AndroidGradlePlugin version 7.2 breaks transform API when used along with ASM API
  • Issue #231037948: AGP 7.2.0-rc01 :buildSrc:generatePrecompiledScriptPluginAccessors - shadow/bundletool/com/android/prefs/AndroidLocation$AndroidLocationException
7.2.1 (2022 年 5 月)

此次次要更新对应于 Android Studio Chipmunk Patch 1 的发布,包含以下 bug 修复

要查看此版本中包含的其他 bug 修复,请参阅Android Studio Chipmunk Patch 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 Analyzer 中运行检查,确认是否可以移除此标志。

支持测试 Fixtures

从 Android Studio Chipmunk Beta 1 开始,Android Studio 同时支持 Android 和 Java 测试 fixtures。如需详细了解测试 fixtures 功能及其在 Java 项目中的使用方法,请参阅 Gradle 关于使用测试 fixtures 的指南{:.external}。

要在 Android 库模块中启用测试 fixtures,请将以下内容添加到库级的 build.gradle 文件中

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

默认情况下,发布库时也会同时发布测试 fixtures AAR 和主库。Gradle Module Metadata 文件将包含信息,以便 Gradle 在请求 testFixtures 组件时使用正确的 artifact。

要在 release variant 中禁用发布库的测试 fixtures AAR,请将以下内容添加到库级的 build.gradle 文件中

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

要使用已发布的 Android 库的测试 fixtures AAR,可以使用 Gradle 的辅助方法 testFixtures()

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

默认情况下,lint 会分析测试 fixtures 源代码。可以按如下方式配置 lint 忽略测试 fixtures 源代码

android {
  lint {
    ignoreTestFixturesSources true
  }
}

不支持重复的内容根目录

从 AGP 7.2 开始,不能再跨多个源集共享同一源目录。例如,不能将相同的测试源代码用于单元测试和插桩测试。如需了解详情,请参阅更改默认的源集配置