我已经将Android Studio代码库成功重构为AndroidX。但这在我的某些库中引起了一些问题。
由于该应用即将投入生产,我需要还原它。我该怎么办?
答案 0 :(得分:9)
我经历了相同的操作,请按照以下步骤撤消AndroidX迁移:
删除gradle.properties
中的以下行:
android.enableJetifier=true
android.useAndroidX=true
删除应用程序build.gradle
中的AndroidX依赖项,并将其替换为等效的非AndroidX依赖项:
例如
implementation 'androidx.core:core:1.0.0-beta01'
implementation 'androidx.appcompat:appcompat:1.0.0-beta01'
使用Gradle文件同步项目
同步后,您可能在java文件中出现导入错误,则可以删除androidx导入,然后重新添加等效的非androidx导入
我希望它能帮助每个面临迁移回滚问题的人。如果您在Android Studio中执行上述步骤时遇到任何冲突问题,请尝试清理并重建项目。
答案 1 :(得分:1)
您只需在Android Studio的“重构”菜单中选择“将应用迁移到appCompat”即可。 另外,不要忘记从gradle.properties中删除这些行:
android.useAndroidX = true
android.enableJetifier = true
答案 2 :(得分:0)
我不能简单地回滚版本控制,因为我想回滚的应用程序是从最初提交的androidx
开始的,但是我的任务是将应用程序模块集成到没有{{1 }}。
这就是我所做的:
错误:属性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)
记下上述错误中的androidx
软件包。
在您要向后迁移的模块中运行androidx
。
在输出中搜索上述错误中提到的gradlew dependencies
程序包。从您的androidx
文件中找出哪些依赖项正在引入该程序包,然后将该程序包还原为等效的support library mapping。
重复步骤1-4,直到Gradle同步成功完成。
现在,您需要在所有build.gradle
文件中搜索.java
,并用其support library package name替换每个导入语句。 此步骤的提示:在Android Studio偏好设置中打开“即时添加明确的导入”,然后删除所有androidx
导入。其中大多数将使用正确的支持包自动填充。
现在您的项目应该可以成功构建,但是由于布局文件中使用的androidx
视图组件,您很可能会遇到运行时崩溃。
在所有xml文件中搜索androidx
和androidx
,然后将每个视图替换为其支持等效名称。
别忘了修复测试中的任何编译问题,然后重新运行它们以确保它们仍然全部通过。
答案 3 :(得分:0)
在迁移到android x之前,对正在运行的存储库进行硬重置。
删除node_modules
文件夹,然后键入npm install
。