1、AndroidX简介
按照官方文档说明 androidx 是对 android.support.xxx 包的整理后产物。由于之前的support包过于混乱,所以,google推出了 androidX。
由于在后续版本中,会逐步放弃对support 的升级和维护,所以,我们必须迁移到 androidX.对此,官方描述如下:
Existing packages, such as the Android Support Library, are being refactored into AndroidX.
Although Support Library versions 27 and lower are still available on Google Maven,
all new development will be included in only AndroidX versions 1.0.0 and higher.
2、迁移步骤
2.1 修改gradle.properties
android.useAndroidX=true
android.enableJetifier=true
其中:
-
android.useAndroidX=true
表示当前项目启用 androidx -
android.enableJetifier=true
表示将依赖包也迁移到androidx 。如果取值为false,表示不迁移依赖包到androidx,但在使用依赖包中的内容时可能会出现问题,当然了,如果你的项目中没有使用任何三方依赖,那么,此项可以设置为false
2.2 如何迁移
在AndroidStudio 3.2 或更高版本(目前最新正式版为3.2,其他更高版为alpha版)中执行如下操作:
-
Refactor > Migrate to AndroidX
image
在执行该操作时会提醒我们是否将当前项目打包备份。如果你提前已经做好了备份,可以忽略;如果没有备份,则先备份。
3 迁移后续
3.1 手动修改错误包名
由于 Migrate to AndroidX
执行之后,部分控件的包名/路径名转换的有问题,所以还需要我们手动调整(包括修改xml布局文件和.java/.kt 文件)。
如:ViewPager,RecyclerView 等,这些内容在迁移完成之后,包名是 androidx.core.weight.xxxx
,这是一个错误的包名,我们必须手动修改,否则,无法正常编译——点击绿色 Run(运行) 按钮时会详细报出哪里有错误。
此处需要注意,在 AndroidStudio 的 build 选项卡中一次最多只会报 50条错误!! 所以,可能在你修完第一批之后,后面还有N个50。此处要保持一个平静的