AGP 8.x 迁移与新特性
Android Gradle Plugin (AGP) 8.x 带来了自 4.x 以来最大的变更。许多旧的默认行为被移除,以强制推行更高效、更安全的构建实践。
核心变更清单
Namespace 强制化
AndroidManifest.xml 中的 package 属性已被废弃。现在必须在 build.gradle.kts 中定义 namespace。
kotlin
android {
namespace = "com.example.myapp"
}BuildConfig 默认禁用
为了提升编译速度,BuildConfig 现在默认不再自动生成。如果你的模块需要它:
kotlin
android {
buildFeatures {
buildConfig = true
}
}资源配置简化 (resValues)
同理,resValues 也默认禁用。需手动开启:
kotlin
android {
buildFeatures {
resValues = true
}
}默认混淆器变更
R8 现在的优化力度更大。AGP 8.x 默认禁用了对部分不安全属性的保留,这可能导致一些极度依赖反射的旧库失效。
建议
升级后务必进行全量回归测试,特别是混淆后的 Release 包。
强类型选项 (DSL)
AGP 8.x 移除了大量的 Groovy 遗留 API。
- 不再支持: 直接访问
variants集合。 - 推荐: 使用
androidComponents.onVariants。
迁移工具
建议使用 Android Studio 自带的迁移助手: Tools > AGP Upgrade Assistant。 它会自动处理大部分的 build.gradle 语法变更。
拥抱 AGP 8.x,意味着选择了更快的增量编译速度和更现代的构建 API。