迁移到 AndroidX

AndroidX 是对原有 Android 支持库的重大改进。

它提供了 androidx.* 库,并且与平台 API 分离。这意味着它提供了向后的兼容性,并且更新频率比 Android 平台更频繁。

常见问题

#

如何将我现有的应用程序、插件或可编辑的模块项目迁移到 AndroidX?

#

你需要 Android Studio 3.2 或更高版本。如果你尚未安装,你可以从 Android Studio 网站下载最新版本。

  1. 打开 Android Studio。

  2. 选择 Open an existing Android Studio Project

  3. 打开应用程序中的 android 目录。

  4. 等待项目同步成功。(在你打开项目后会自动同步,如果没有,请从菜单中选择 File > Sync Project with Gradle Files)。

  5. 从菜单中选择 Refactor > Migrate to AndroidX

  6. 在继续之前,如果你被要求对项目进行备份,请勾选 Backup project as Zip file,然后点击 Migrate。最后,将 zip 文件保存在你期望的位置。

重构预览显示了变动的列表,最后,点击 Do Refactor

大功告成!你成功地将项目迁移到了 AndroidX。

最后,如果你迁移了插件,请发布新的 AndroidX 版本到 pub 并更新你的 CHANGELOG.md,以表明该新版本与 AndroidX 兼容。

如果我不能使用 Android Studio 怎么办?

#

你可以使用 Flutter 工具创建一个新项目,然后将原项目的 Dart 代码和资源文件转移到新项目中。

要创建一个新的项目,请运行:

flutter create -t <project-type> <new-project-path>

集成到现有应用 (add-to-app)

#

如果你的 Flutter 项目是用于集成到现有 Android 应用的模块,并且包含 .android 目录,请在 pubspec.yaml 中添加以下内容:

yaml
 module:
   ...
    androidX: true # Add this line.

最后,运行 flutter clean

如果你的模块包含 android 目录,那么请按照上面相关章节的步骤操作。

如何判断我的项目中是否在使用 AndroidX?

#

从 Flutter 1.12.13 版本开始,用 flutter create -t <project-type> 创建的新项目将默认使用 AndroidX。

在此 Flutter 版本(1.12.13 版本)之前创建的项目不能依赖于任何 旧构建工件旧支持库类

在应用程序和模块项目中, android/gradle.properties.android/gradle.properties 文件内必须包含以下内容:

properties
android.useAndroidX=true
android.enableJetifier=true

如果我不将应用程序或模块迁移到 AndroidX 会怎么样?

#

你的应用程序也许能继续使用。然而,一般不建议将 AndroidX 和 Android Support 结合使用,因为它可能导致依赖冲突或其他类型的 Gradle 故障。因此,随着越来越多的插件迁移到 AndroidX,依赖于 Android 核心库的插件可能会导致构建失败。

如果我的应用程序已经迁移到了 AndroidX,但我使用的插件未全部支持 AndroidX 怎么办?

#

Flutter 工具通过 Jetifier 将使用支持库的 Flutter 插件自动迁移到 AndroidX,因此,即使这些插件尚未迁移到 AndroidX,你仍然可以使用它们。

我在迁移到 AndroidX 的过程中遇到问题

#

在 GitHub 提出一个 issue 并在 issue 的标题中添加 [androidx-migration]