将现有Android Support库迁移至AndroidX的最简方案咨询
最简可行的Android Support库转AndroidX方案
嘿,我来帮你搞定这个AndroidX迁移的事儿!其实你不用自己瞎琢磨手动改,Google官方给的一键迁移工具就是最简最靠谱的方案,跟着下面的步骤走就行:
1. 先做好备份!
这步绝对不能省!先把项目推到Git仓库,或者本地复制一份完整的项目文件夹,避免迁移过程中出问题没法回滚。
2. 开启AndroidX支持
打开项目根目录下的gradle.properties文件,添加以下两行配置:
android.useAndroidX=true android.enableJetifier=true
android.useAndroidX=true:告诉Gradle我们要使用AndroidX库替代旧的Support库android.enableJetifier=true:自动把第三方依赖里的Support库代码转换成AndroidX版本,省得你手动去改那些依赖的源码
3. 执行一键迁移
打开Android Studio,依次点击顶部菜单栏的:Refactor > Migrate to AndroidX...
弹出对话框后,先预览一下AS要修改的文件(没问题的话),点击Do Refactor,剩下的就交给AS自动处理:
- 替换Java/Kotlin代码里所有Support库的导入语句为对应的AndroidX类
- 替换布局XML里的Support组件标签(比如把
android.support.v7.widget.RecyclerView换成androidx.recyclerview.widget.RecyclerView) - 更新所有模块
build.gradle里的依赖引用
4. 处理残留小问题
迁移完成后,可能会遇到一些小报错,常见的解决方法:
- 某些自定义View或者极老的第三方依赖没被Jetifier覆盖:手动替换对应的AndroidX类,或者检查依赖是否有支持AndroidX的新版本
- 资源冲突或者构建报错:先执行
Build > Clean Project,再Build > Rebuild Project,一般就能解决
额外小提示
如果你的项目是多模块结构,这个工具会自动遍历所有模块完成迁移,不用一个个模块手动操作。另外,如果条件允许,建议把build.gradle里的compileSdkVersion升级到28及以上(Android Oreo对应26,不过AndroidX在更高的SDK版本下兼容性更好),如果暂时不想升级,也能完成迁移,只是可能需要处理个别适配问题。
内容的提问来源于stack exchange,提问作者Zeeshan Ahmad




