前言
- 最近 Google 發(fā)布了 Android support library 28醉者,同時也發(fā)布了 androidx 1.0.0 第一個正式版本颠区,然后得知支持庫的 "28.0.0" 將會是最后一次更新俺抽,之后的更新都會遷移到 Androidx 中欢瞪,所以沒辦法,只能把項目依賴也遷移到 Androidx 了属愤。
開始遷移
- 遷移步驟 Google 官方有給出流程号胚,首先在 gradle.properties 文件中添加
// 表示使用 androidx
android.useAndroidX=true
// 表示將第三方庫遷移到 androidx
android.enableJetifier=true
- 然后菜單欄 Refactor -> Migrate to Androidx 就可以了籽慢,Android Studio 會自動把你項目中的依賴切換到 Androidx,并且修改項目中使用到依賴庫的路徑猫胁。
遷移中的坑
- 當然啦箱亿,如果真的這么簡單就完事了我就不用寫這篇文章了,實際遷移中還是有不少問題的弃秆。
- 首先届惋,項目中使用到的依賴庫路徑修改有很多事錯誤的,或者是沒有修改的菠赚,這個沒辦法脑豹,只能每個文件都打開,一個一個的修改了╥﹏╥...
- 然后锈至,使用
android.enableJetifier=true
可以將項目中使用的第三方庫也遷移到 Androidx晨缴,但是,遷移后使用還是會報錯峡捡,這時你需要 Flie -> Invalidate Caches /Restart 一下就可以了。 - 接著就是項目中用到了
databinding
和dagger
的筑悴,使用dagger
的最新版本 2.17们拙,注解處理器會產(chǎn)生沖突,導致項目無法編譯成功阁吝,到處找解決方案都沒有砚婆,最后只好退回 2.16 這個版本才解決了這個問題。