升级AndroidX 采坑
先说说我为什么要将项目升级到 AndroidX
1、官方推荐 :会在AndroidX 中加入新特性 ,但不会加入 support 包中,同时也是为了,整合臃肿的 support 包。
2、在升级 gradle 到 3.4.2 之后 项目就默认 是AndroidX了
3、我在新需求中,需要 竖直方向的 ViewPager “ 网上有很多 自定义实现的,效果都不太好 ” ,然后了解到 AndroidX 中的 ViewPager2 支持竖直方向,官方的 能不香吗?
主要还是因为 第三条,我决定 将原有的项目 升级到 AndroidX(项目很大,酸爽~~~)。
开始动手
-
gradle.properties 文件中 加入下面两行代 () android.useAndroidX=true 表示允许升级 AndroidX android.enableJetifier=true 表示依赖包升级到 AndroidX
-
gradle-wrapper.properties 中 升级到 4.6 以上
distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip
-
Prject 的 build.gradle 中 classPath 3.2 以上
dependencies { classpath 'com.android.tools.build:gradle:3.2.0' }
-
将项目中 所有的support 包 手动 换到 28 以上 如:
implementation 'com.android.support:appcompat-v7:28.0.0'
-
有的依赖包 也需要同步 比如 :
Glide 4.8以上: 'com.github.bumptech.glide:glide:4.8.0'
-
最后一步:如图 右键项目名称 —> Refactor —> Migrate to Androix
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jS1P0Osv-1578467127068)(C:\Users\00\AppData\Roaming\Typora\typora-user-images\1578465547921.png)]
这时 AS 会提示你需不需要备份,最好是备一份,万一升级不成功呢 是吧 哈哈!,按照步骤来应该是没问题的!相信俺!
就会发现,原先的Support 包 都变成了 AndroidX 包了 。
如果之前,引入过CardView 这样的包 ,可以按照下面地址 替换成对应 AndroidX 包
最后结果会分为两种情况
一 、项目就可以正常运行了
二 、项目中的组件,引入的包名都不能用了,需要手动替换 (替换了一上午55555!)
两种情况我都遇到过,希望你是第一种,祝你好运