遷移AndroidX

1. 前言

AndroidX replaces the original support library APIs with packages in the androidx namespace. Only the package and Maven artifact names changed; class, method, and field names did not change.宾舅,Google不再對(duì)android support庫進(jìn)行維護(hù)彩倚,android support中的API由命名空間AndroidX下的軟件包進(jìn)行替換扶平,即相應(yīng)的包名Maven工件名發(fā)生改變。

2. 遷移AndroidX

2.1 遷移之前的準(zhǔn)備

  • 原有項(xiàng)目的support庫版本升級(jí)至28(Android 9)哥谷,這也是support library的最后版本麻献,SDK 28 和AndroidX 1.0 是等效的。This is because AndroidX artifacts with version 1.0.0 are binary equivalent to the Support Library 28.0.0 artifacts.勉吻,
compileSdkVersion 28
  • 建議使用Android studio 3.2或更高版本,(當(dāng)前最新版已經(jīng)到了4.0)惑惶。
  • gradle-wrapper.properties中Gradle插件版本不低于4.6短纵。
distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
  • 如果代碼在版本控制器中,建議在單獨(dú)的分支中遷移香到。

2.2 執(zhí)行遷移

  1. 在gradle.properties文件中添加下列項(xiàng)。
# Android 插件會(huì)使用對(duì)應(yīng)的 AndroidX 庫而非支持庫雷绢。
android.useAndroidX=true
# Android 插件會(huì)通過重寫現(xiàn)有第三方庫的二進(jìn)制文件理卑,自動(dòng)將這些庫遷移為使用 AndroidX,但并不完全自動(dòng)藐唠。
android.enableJetifier=true
  1. 如果是AS 3.2或更高版本,則提供了一鍵遷移踪宠,選擇菜單Refactor-> Migrate to AndroidX妈嘹,會(huì)提示備份當(dāng)前工程,勾選Backup project as Zip file,可以自動(dòng)幫你備份他去。
    image
  2. 左下角提示倒堕,點(diǎn)擊Do Refactor
    image

3 遷移結(jié)果

在一鍵遷移之后,gradle文件中implementation的所有support庫被androidx替換媳搪,比如

implementation 'com.android.support:appcompat-v7:28.0.0' 
變?yōu)?implementation 'androidx.appcompat:appcompat:1.0.0'

相應(yīng)類名也會(huì)發(fā)生改變

import android.support.v7.app.AppCompatActivity;
變?yōu)?import androidx.appcompat.app.AppCompatActivity;

所以骤宣,可以先看看上面兩項(xiàng)結(jié)果,如果沒有替換成功鲜结,可手動(dòng)替換活逆,相應(yīng)替換可查閱官方提供的CSV格式的依賴庫映射文件類映射文件

rebuild project蔗候,如果編譯通過,那么恭喜你了锈遥,我反正是失敗了。

4 遷移出錯(cuò)

4.1 可手動(dòng)糾正的錯(cuò)

  1. 有的文件中沒能替換掉丽惶,需要按照上述兩項(xiàng)映射手動(dòng)替換爬立。
  2. 檢查gradle中通過implementation引入的庫,比如implementation androidx.recyclerview:recyclerview:1.0.0'侠驯,則一鍵遷移后導(dǎo)入的類為import androidx.appcompat.widget.RecyclerView;,需要替換為import androidx.recyclerview.widget.RecyclerView;儒士,猜測(cè)只是全局替換掉support字樣檩坚。因?yàn)?code>類似還有GridLayoutManager诅福、FragmentTransaction;
    `等睹酌。

4.2 第三方庫沖突

support庫和androidx是不能共存的剩檀,

  • 情況1 :當(dāng)遷移結(jié)束之后,理論上講自己的項(xiàng)目使用的是androidx沪猴,但是老項(xiàng)目中導(dǎo)入了許多第三方的庫,這些舊版本的庫使用的是support壶辜。
  • 情況2:這種情況發(fā)生在未進(jìn)行遷移的項(xiàng)目中担租,由于導(dǎo)入了最新版的第三方庫,而該庫使用了androidx奋救,也會(huì)報(bào)錯(cuò)。

解決方法:

  • 情況1演侯,更新第三方庫到最新版本或使用androidx的版本背亥,如果這個(gè)庫沒有使用androidx的版本,那就要找其他的方案代替吧(不知道是否是正確的解決方案)狡汉。
  • 情況2:使用舊版本的第三方庫。

總之嵌莉,就是多build捻脖,根據(jù)異常信息解決問題。

5 參考資料

AndroidX預(yù)覽
官方遷移教程
谷歌開發(fā)者-是時(shí)候遷移至 AndroidX 了


本文若有出入可婶,請(qǐng)指正!
我是小小范同學(xué)椎扬。


本文由博客一文多發(fā)平臺(tái) OpenWrite 發(fā)布!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末筐赔,一起剝皮案震驚了整個(gè)濱河市揖铜,隨后出現(xiàn)的幾起案子茴丰,更是在濱河造成了極大的恐慌天吓,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件汰规,死亡現(xiàn)場(chǎng)離奇詭異物邑,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)茂嗓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門冒签,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人刚梭,你說我怎么就攤上這事票唆∑佣粒” “怎么了走趋?”我有些...
    開封第一講書人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵簿煌,是天一觀的道長。 經(jīng)常有香客問我姨伟,道長,這世上最難降的妖魔是什么瞒渠? 我笑而不...
    開封第一講書人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮伍玖,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘串纺。我一直安慰自己仔燕,他們只是感情好魔招,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著外恕,像睡著了一般乡翅。 火紅的嫁衣襯著肌膚如雪鳞疲。 梳的紋絲不亂的頭發(fā)上蠕蚜,一...
    開封第一講書人閱讀 51,679評(píng)論 1 305
  • 那天靶累,我揣著相機(jī)與錄音,去河邊找鬼挣柬。 笑死,一個(gè)胖子當(dāng)著我的面吹牛邪蛔,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播勃教,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼匠抗,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了心软?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤删铃,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后咒劲,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體诫隅,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年蛔屹,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了豁生。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡育叁,死狀恐怖芍殖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情豌骏,我是刑警寧澤,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布变秦,位于F島的核電站框舔,受9級(jí)特大地震影響蹦玫,放射性物質(zhì)發(fā)生泄漏刘绣。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一福贞、第九天 我趴在偏房一處隱蔽的房頂上張望停士。 院中可真熱鬧完丽,春花似錦拇舀、人聲如沸逻族。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽抠璃。三九已至脱惰,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間枪芒,已是汗流浹背谁尸。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來泰國打工良蛮, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留抽碌,地道東北人决瞳。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓皮胡,卻偏偏與公主長得像痴颊,于是被迫代替她去往敵國和親屡贺。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355