Android Gradle 插件 DSL/API 迁移时间线

Android Gradle 插件 (AGP) 是 Android 应用程序的受支持构建系统,包括支持编译许多不同类型的源代码并将它们链接在一起以形成可在物理 Android 设备或模拟器上运行的应用程序。

以下部分描述了 AGP 的 DSL 和 API 的计划演变。随着新 API 在稳定版本中引入,旧 API 将被标记为已弃用。然后,这些已弃用的 API 将在下一个稳定版本中不可用。您可以在下面找到有关每个主要 AGP 版本中即将发生的更改的信息。

有关 AGP API 弃用或删除的更详细日志,请参阅 AGP API 更新

AGP 9.0 (2024 年年中)

新的变体 API 稳定,旧 API 已弃用

  • 在 4.1 和 4.2 中处于孵化阶段的 变体 API 现已稳定。
  • 所有这些接口都位于 gradle-api 工件中。
  • 旧变体 API 中使用的先前接口和类现在已弃用。

新的 DSL 接口稳定,旧的接口已弃用

  • 在 4.1、4.2 和 7.0 中处于孵化阶段的 DSL 接口 现已稳定。
  • 所有这些接口都位于 gradle-api 工件中。
  • DSL 中使用的先前接口和类现在已弃用。

仍然可以访问私有内部 AGP 类

位于其他工件中的 AGP 的私有内部类在构建文件的编译期间仍然可以访问,但不建议使用它们,因为它们可能会随时以破坏性的方式更改。

AGP 10.0 (2025 年)

旧 API 已删除

  • DSL 和旧变体 API 中使用的所有先前接口和类都已删除
  • gradle-api 工件是访问 DSL 和变体 API 接口和类的唯一工件,在开发插件时应使用它。
  • 使用 Gradle 元数据(为编译和运行时提供不同的依赖项图),在构建文件的编译期间仅提供 gradle-api 工件。

(暂定)删除对私有内部 AGP 类的访问

gradle 工件的依赖项现在隐藏所有内部类,并且仅允许编译访问 gradle-api 工件中可用的接口和类。这会影响插件和构建文件编译。

无法手动添加依赖项以访问内部类。