最近不怎么在“捣鼓”Android,更别说什么升级迁移AndroidX。原本在使用Android Studio3.1.x的时候就动了心思,不过一直没什么兴趣和时间。当某天再次看到AndroidX的关键字眼,心血来潮决定把原来写的APP迁移到AndroidX。
首先,查看当前所用的Android Studio的版本号:
查找帮助点击About即可看到具体的版本号:
Android Studio具体版本号这里是升级后的新版本的查找方法,历史版本的Android Studio类似。当前版本是支持辅助工具迁移到AndroidX的。查询所使用的IDE是否支持迁移AndroidX的方法如下:
是否支持迁移AndroidX工具在菜单栏Refactor中的选项中发现“Migrate to AndroidX...”,即是可以直接使用辅助工具进行迁移操作。否则,升级Android Studio到较新版本。
接下来就开始迁移至AndroidX的进程:
点击“Migrate to AndroidX...”,会弹出确认对话框及其选项,选项很简单就两个:一个为需要进行迁移的Android项目,另一个是否需要打包原项目的选项。如图示:
是否迁移到AndroidX这里当然是“Migrate”以及确保勾选“Backup project as Zip file”--备份原项目为Zip文件。开始迁移工作:
选择项目和备份点击“OK”确认,迁移就开始了:
迁移AndroidX:查找目标用法 迁移到AndroidX成功毫无疑问,上图是迁移完成后或没有需要辅助工具帮助的地方才出现的提示,这里笔者已完成迁移AndroidX。而如果没有完成或需要迁移,则会在下面的位置给予相关的提醒:
迁移AndroidX提醒相关需要修改的内容就会罗列在 Build Output之中,包括gradle,source和layout。其实就是完整或模糊导入的package名称。这意味着,迁移到AndroidX的实质操作就是:修改当前Android项目的gradle、source和layout等文件中的package包名和class类名。到了这里,就是比较关键的位置。需要将原package包或class类,将support v4/v7/v11等等一系列和android.*中相关和androidx.*进行一一对应。这是Android目前官方网站的package包列表地址:https://developer.android.google.cn/reference/androidx/packages
包括Kotlin和Java的:
Kotlin Java那么按 Migrate to AndroidX的提示完成操作就万事大吉OK?答案是:不一定。可能gralde存在一些非Android体系的package包和class类没有相对应的适配。再次 Build Project 后会发现没有通过,就是这个原因。这个就需要手动去查找第三方的 文档,找出对应的解决方案。