升級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!)
兩種情況我都遇到過,希望你是第一種,祝你好運