Android Gradle Plugin 7.2.0 (2022 年 5 月)
Android Gradle 插件 7.2.0 是一个重要版本,包含各种新功能和改进。
此次次要更新对应于 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
此次次要更新对应于 Android Studio Chipmunk Patch 1 的发布,包含以下 bug 修复
- Issue #230361284: bundletool does not package baseline profiles correctly
要查看此版本中包含的其他 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 开始,不能再跨多个源集共享同一源目录。例如,不能将相同的测试源代码用于单元测试和插桩测试。如需了解详情,请参阅更改默认的源集配置。