androidx升級(jí)

先上圖(舒服):

升級(jí)結(jié)果展示
  1. 所有模塊統(tǒng)一編譯環(huán)境(很重要)
support包版本28.0.0 (推薦這個(gè)版本)   
buildToolsVersion "28.0.3"  
targetSdkVersion 28   
com.android.tools.build:gradle:3.2.0+ (最低3.2)
gradle4.6+  

一些三方庫(kù)support包會(huì)造成沖突 強(qiáng)制指定版本

根目錄build.gradle

configurations.all {
        resolutionStrategy.eachDependency { DependencyResolveDetails details ->
            def requested = details.requested
            if (requested.group == 'com.android.support') {
                if (!requested.name.startsWith("multidex")) {
                    details.useVersion '28.0.0'
                }
            }
        }
    }

使用rebuild project編譯通過(guò)進(jìn)入下一步
遇到了一個(gè)小問(wèn)題

canvas.save(Canvas.CLIP_SAVE_FLAG)報(bào)錯(cuò)篮条,更改為 canvas.save();
  1. gradle.properties配置
## Android 插件會(huì)使用對(duì)應(yīng)的 AndroidX 庫(kù)而非支持庫(kù)。
android.useAndroidX=true
## Android 插件會(huì)通過(guò)重寫(xiě)現(xiàn)有第三方庫(kù)的二進(jìn)制文件,自動(dòng)將這些庫(kù)遷移為使用 AndroidX缭付。
android.enableJetifier=true
  1. 從菜單欄中依次選擇 Refactor > Migrate to AndroidX
  2. rebuild project 解決報(bào)錯(cuò)
    在這一步主要遇到的坑就是版本沖突編譯不過(guò)漩氨,然后尋找沖突的庫(kù)很麻煩,如果第一步支持庫(kù)版本號(hào)為28并且編譯通過(guò)的話那么這一步問(wèn)題不會(huì)太多莱找。我是踩了坑然后回退代碼重新更改為28重新來(lái)過(guò)。
  3. 搜索support包引用更改
    由于這個(gè)替換工具有一些小問(wèn)題蝙泼,不可能做到全部替換,所以我們需要手動(dòng)全局替換劝枣,主要存在于未被引用到的類(lèi)和xml汤踏。官方類(lèi)類(lèi)映射對(duì)照表
  4. 混淆更改
# androidx
-keep class com.google.android.material.** {*;}
-keep class androidx.** {*;}
-keep public class * extends androidx.**
-keep interface androidx.** {*;}
-keep @androidx.annotation.Keep class *
-keepclassmembers class * {
    @androidx.annotation.Keep *;
}
-dontwarn com.google.android.material.**
-dontnote com.google.android.material.**
-dontwarn androidx.**
  1. 版本庫(kù)統(tǒng)一管理
    由于升級(jí)插件的原因,原來(lái)的使用gradle全局管理依賴的不在生效直接被替換了舔腾,比如以前引用是這樣的
implementation rootProject.ext.dependencies.libSupportAppcompatV7

被替換之后就是這樣了

implementation "androidx.appcompat:appcompat:1.0.0"

為了我們方便管理我們需要手動(dòng)更改一下溪胶,然后根據(jù)我們的需要在對(duì)應(yīng)的引入文件替換。

 //androidx
            libXAnnotation            : "androidx.annotation:annotation:${ANDROIDX_LIB_VERSION}",
            libXAppcompat             : "androidx.appcompat:appcompat:${ANDROIDX_LIB_VERSION}",
            libXRecyclerview          : "androidx.recyclerview:recyclerview:${ANDROIDX_LIB_VERSION}",
            libXCoreKtx               : "androidx.core:core-ktx:$ANDROIDX_LIB_VERSION",
            libXFragmentKtx           : "androidx.fragment:fragment-ktx:$ANDROIDX_LIB_VERSION",
            libXSwiperefreshlayout    : "androidx.swiperefreshlayout:swiperefreshlayout:$ANDROIDX_LIB_VERSION",
            libXMaterial              : "com.google.android.material:material:${ANDROIDX_LIB_VERSION}",//替代com.android.support:design

            libXMultidex              : 'androidx.multidex:multidex:2.0.0',
            libConstraintLayout       : 'androidx.constraintlayout:constraintlayout:1.1.3',//暫時(shí)有需要用到
            libXCardView              : 'androidx.cardview:cardview:1.0.0',//替代com.android.support:cardview-v7

具體查看官方組建映射對(duì)照表稳诚,更換之后編譯解決報(bào)錯(cuò)即可哗脖,主要是一些三方依賴造成依賴沖突的問(wèn)題,可以類(lèi)似第一步強(qiáng)制指定版本號(hào)扳还。

參考鏈接:
官方androidx說(shuō)明
android.support升級(jí)到androidx踩坑記錄

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末才避,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子氨距,更是在濱河造成了極大的恐慌桑逝,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,729評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件俏让,死亡現(xiàn)場(chǎng)離奇詭異楞遏,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)首昔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)寡喝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人勒奇,你說(shuō)我怎么就攤上這事预鬓。” “怎么了赊颠?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,461評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵格二,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我巨税,道長(zhǎng)蟋定,這世上最難降的妖魔是什么粉臊? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,135評(píng)論 1 300
  • 正文 為了忘掉前任草添,我火速辦了婚禮,結(jié)果婚禮上扼仲,老公的妹妹穿的比我還像新娘远寸。我一直安慰自己抄淑,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,130評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布驰后。 她就那樣靜靜地躺著肆资,像睡著了一般。 火紅的嫁衣襯著肌膚如雪灶芝。 梳的紋絲不亂的頭發(fā)上郑原,一...
    開(kāi)封第一講書(shū)人閱讀 52,736評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音夜涕,去河邊找鬼犯犁。 笑死,一個(gè)胖子當(dāng)著我的面吹牛女器,可吹牛的內(nèi)容都是我干的酸役。 我是一名探鬼主播,決...
    沈念sama閱讀 41,179評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼驾胆,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼涣澡!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起丧诺,我...
    開(kāi)封第一講書(shū)人閱讀 40,124評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤入桂,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后锅必,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體事格,經(jīng)...
    沈念sama閱讀 46,657評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,723評(píng)論 3 342
  • 正文 我和宋清朗相戀三年搞隐,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了驹愚。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,872評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡劣纲,死狀恐怖逢捺,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情癞季,我是刑警寧澤劫瞳,帶...
    沈念sama閱讀 36,533評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站绷柒,受9級(jí)特大地震影響志于,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜废睦,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,213評(píng)論 3 336
  • 文/蒙蒙 一伺绽、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦奈应、人聲如沸澜掩。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,700評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)肩榕。三九已至,卻和暖如春惩妇,著一層夾襖步出監(jiān)牢的瞬間株汉,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,819評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工歌殃, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留郎逃,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,304評(píng)論 3 379
  • 正文 我出身青樓挺份,卻偏偏與公主長(zhǎng)得像褒翰,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子匀泊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,876評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容