撤消迁移到AndroidX

时间:2018-11-23 12:33:21

标签: android android-studio

我已经将Android Studio代码库成功重构为AndroidX。但这在我的某些库中引起了一些问题。

由于该应用即将投入生产,我需要还原它。我该怎么办?

4 个答案:

答案 0 :(得分:9)

我经历了相同的操作,请按照以下步骤撤消AndroidX迁移:

  1. 删除gradle.properties中的以下行:

    android.enableJetifier=true
    android.useAndroidX=true
    
  2. 删除应用程序build.gradle中的AndroidX依赖项,并将其替换为等效的非AndroidX依赖项:

    例如

    implementation 'androidx.core:core:1.0.0-beta01'
    implementation 'androidx.appcompat:appcompat:1.0.0-beta01'
    
  3. 使用Gradle文件同步项目

  4. 同步后,您可能在java文件中出现导入错误,则可以删除androidx导入,然后重新添加等效的非androidx导入

我希望它能帮助每个面临迁移回滚问题的人。如果您在Android Studio中执行上述步骤时遇到任何冲突问题,请尝试清理并重建项目。

答案 1 :(得分:1)

您只需在Android Studio的“重构”菜单中选择“将应用迁移到appCompat”即可。 另外,不要忘记从gradle.properties中删除这些行:

android.useAndroidX = true

android.enableJetifier = true

答案 2 :(得分:0)

我不能简单地回滚版本控制,因为我想回滚的应用程序是从最初提交的androidx开始的,但是我的任务是将应用程序模块集成到没有{{1 }}。

这就是我所做的:

  1. 尝试同步gradle,不可避免地会出现某种错误。这是我看到的第一个错误:
  

错误:属性application @ appComponentFactory   值=(androidx.core.app.CoreComponentFactory)来自   [ androidx.core:core:1.1.0 ] AndroidManifest.xml:24:18-86也是   存在于[com.android.support:support-compat:28.0.0]   AndroidManifest.xml:22:18-91   值=(android.support.v4.app.CoreComponentFactory)

  1. 记下上述错误中的androidx软件包。

  2. 在您要向后迁移的模块中运行androidx

  3. 在输出中搜索上述错误中提到的gradlew dependencies程序包。从您的androidx文件中找出哪些依赖项正在引入该程序包,然后将该程序包还原为等效的support library mapping

  4. 重复步骤1-4,直到Gradle同步成功完成。

  5. 现在,您需要在所有build.gradle文件中搜索.java,并用其support library package name替换每个导入语句。 此步骤的提示:在Android Studio偏好设置中打开“即时添加明确的导入”,然后删除所有androidx导入。其中大多数将使用正确的支持包自​​动填充。

  6. 现在您的项目应该可以成功构建,但是由于布局文件中使用的androidx视图组件,您很可能会遇到运行时崩溃。

  7. 在所有xml文件中搜索androidxandroidx,然后将每个视图替换为其支持等效名称。

  8. 别忘了修复测试中的任何编译问题,然后重新运行它们以确保它们仍然全部通过。

答案 3 :(得分:0)

在迁移到android x之前,对正在运行的存储库进行硬重置。

删除node_modules文件夹,然后键入npm install