Skip to content

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。