将项目迁移至androidx

今天将AS升级到3.4.1后发现

可以升级个别依赖,看到实时实现的特性和bug修复,不需要对使用的所有其他库进行更新。这就好像使用Github上的开源库一样的,出了问题,我们可以提出bug和意见。作者修复后,发布新版本,我们就可以直接替换使用了。更加的透明便捷。

遂去官网了解到对我们的影响并不大,28.0.0的稳定版本还是采用android.support,只是后续版本功能都采用了androidx,并不是强制的,我们常用的一些像butterknife,glide 等也都适配了androidx

长远看来好处还是不少的,所以要在这个飞速发展的社会去接受变化拥抱变化,然后就用了一天的时间对项目进行了迁移(要了老命了,项目庞大的谨慎)!!!

迁移步骤:

gradle.properties添加如下内容:

/**
*android.useAndroidX=true 表示当前项目启用 androidx
*android.enableJetifier=true 表示将依赖包也迁移到androidx 。如果取值为false,表示不迁移依赖包
*到androidx,但在使用依赖包中的内容时可能会出现问题
*/
android.useAndroidX=true   
android.enableJetifier=true 
                             

AndroidStudio 3.2或更高(因为一个个去改太麻烦,这个版本有一键迁移的功能 Refactor -> Migrate to AndroidX  在执行该操作时会提醒我们是否将当前项目打包备份。如果你提前已经做好了备份,可以忽略;如果没有备份,则先备份。)

 gradle版本至少为3.2.0以上,以及compileSdkVersion为28以上。(否则点击Migrate to Androidx会出现如下错误)

 

迁移完后手动修改包名(项目庞大的一定要谨慎备份,怕在这最后一步坚持不住!!!心累)

因为在 AndroidStudio 的 build 选项卡中一次只会报 部分错误!! 所以,在你修完第一批之后,后面还有N个部分等你去处理。此处要保持一个平静的心态!!!!!!!!

另外要注意Glide3.4对androidx不兼容,所以要先升级Glide到升级到 4.8.0 之后

如果你有幸遇到这个问题:[TAG] Failed to resolve variable '${animal.sniffer.version}'

建议:直接File->Invalidate Caches / restart,(我的是这样好了)

迁移完后会遇到很多莫名的错误,大家见招拆招吧,优先考虑是否某文件引用了xxx.support.xxx的情况,如果引用,记得替换成 androidx.xxx.xxx 包下的对应控件

参考博客:

https://www.jianshu.com/p/41de8689615d

官方迁移指南

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值