遷移至AndroidX(Migrate to AndroidX)

了解AndroidX

谷歌的文檔工作做得比國(guó)內(nèi)任何一家互聯(lián)網(wǎng)公司都要好贸人,直接參考安卓開發(fā)者網(wǎng)站:AndroidX Overview

遷移到AndroidX

Migrating to AndroidX

  1. 保存當(dāng)前工作空間狀態(tài)副签,萬一遷移出錯(cuò)可以恢復(fù)當(dāng)前狀態(tài)。當(dāng)然Android Studio已經(jīng)想到了這一點(diǎn)阶牍,在開始遷移(migrate)之前可以選擇幫你打一個(gè)zip包進(jìn)行另存(Backup project as Zip file)笙纤。


    Backup project as Zip file
  2. 如果當(dāng)前Android Studio是3.2及以上版本啄骇,直接點(diǎn)菜單欄Refactor > Migrate to AndroidX

報(bào)錯(cuò)及修改:

  1. You need to have at least have compileSdk 28 set in your module build.gradle to migrate to AndroidX.

之前創(chuàng)建的老項(xiàng)目依賴版本一般都不會(huì)到28宵蛀,故需要修改到最新的28昆著,新創(chuàng)建的項(xiàng)目也得注意依賴版本得是28以上才行。

修改: 主Module的 build.gradle 中

compileSdkVersion 28
  1. The gradle plugin version in your project build.gradle file needs to be set to at least com.android.tools.build:gradle:3.2.0 in order to migrate to AndroidX.

同理保證gradle插件是最新版本术陶。

修改project 的 build.gradle :

classpath 'com.android.tools.build:gradle:3.2.0'

報(bào)錯(cuò)如下:

Minimum supported Gradle version is 4.6. Current version is 4.4.

修改 gradle-wrapper.properties 中:

distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip

到這里常規(guī)遷移工作已經(jīng)全部完成了凑懂。

  1. 找不到android.support.annotation.CallSuper; android.support.annotation.UiThread

以上提醒事項(xiàng)都完成之后編譯還是出錯(cuò)了。發(fā)現(xiàn)在build目錄自動(dòng)生成的所有XXXactivity_ViewBinding都報(bào)找不到注解 @UiThread @CallSuper梧宫,看這個(gè)自動(dòng)生成類的名字大概就可以猜到是ButterKnife出問題了

想到之前看到過JakeWharton早就為ButterKnife兼容了androidX,
找到ButterKnife的倉(cāng)庫(kù)看到已經(jīng)升級(jí)到9.0.0-rc1了接谨,升級(jí)至9.0.0-rc1后再次編譯一次摆碉。

  1. 此時(shí)已經(jīng)可以運(yùn)行了,但是build還是會(huì)報(bào)錯(cuò)
ERROR: [TAG] Failed to resolve variable '${animal.sniffer.version}'

ERROR: [TAG] Failed to resolve variable '${junit.version}'

上網(wǎng)一查:stackoverflow

直接File->Invalidate Caches / restart,不再報(bào)錯(cuò)了脓豪。

  • 如果是老項(xiàng)目中引入了第三方框架巷帝,自動(dòng)遷移過程中在gradle.properties已經(jīng)自動(dòng)為我們添加了兩個(gè)配置,如果是手動(dòng)遷移需要自己添加:
With Android Studio 3.2 and higher, you can quickly migrate an existing project to use AndroidX by selecting Refactor > Migrate to AndroidX from the menu bar.

If you have any Maven dependencies that have not been migrated to the AndroidX namespace, the Android Studio build system also migrates those dependencies for you when you set the following two flags to true in your gradle.properties file:

android.useAndroidX=true
android.enableJetifier=true

To migrate an existing project that does not use any third-party libraries with dependencies that need converting, you can set the android.useAndroidX flag to true and the android.enableJetifier flag to false.

修正優(yōu)化gradle中的版本

如果你的工程中將version都集中到了versions.gradle文件中或其他地方跑揉,android studio的自動(dòng)遷移功能只會(huì)修改build.gradle文件中的相應(yīng)版本锅睛,所以需要自己再次整理gradle文件埠巨。

com.android.support:design  com.google.android.material:material:1.0.0-rc01
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末历谍,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子辣垒,更是在濱河造成了極大的恐慌望侈,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,682評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件勋桶,死亡現(xiàn)場(chǎng)離奇詭異脱衙,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)例驹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門捐韩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人鹃锈,你說我怎么就攤上這事荤胁。” “怎么了屎债?”我有些...
    開封第一講書人閱讀 165,083評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵仅政,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我盆驹,道長(zhǎng)圆丹,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,763評(píng)論 1 295
  • 正文 為了忘掉前任躯喇,我火速辦了婚禮辫封,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘廉丽。我一直安慰自己倦微,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,785評(píng)論 6 392
  • 文/花漫 我一把揭開白布雅倒。 她就那樣靜靜地躺著璃诀,像睡著了一般蔑匣。 火紅的嫁衣襯著肌膚如雪劣欢。 梳的紋絲不亂的頭發(fā)上棕诵,一...
    開封第一講書人閱讀 51,624評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音凿将,去河邊找鬼校套。 笑死,一個(gè)胖子當(dāng)著我的面吹牛牧抵,可吹牛的內(nèi)容都是我干的笛匙。 我是一名探鬼主播,決...
    沈念sama閱讀 40,358評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼犀变,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼妹孙!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起获枝,我...
    開封第一講書人閱讀 39,261評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤蠢正,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后省店,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體嚣崭,經(jīng)...
    沈念sama閱讀 45,722評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年懦傍,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了雹舀。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,030評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡粗俱,死狀恐怖说榆,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情源梭,我是刑警寧澤娱俺,帶...
    沈念sama閱讀 35,737評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站废麻,受9級(jí)特大地震影響荠卷,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜烛愧,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,360評(píng)論 3 330
  • 文/蒙蒙 一油宜、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧怜姿,春花似錦慎冤、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至但狭,卻和暖如春披诗,著一層夾襖步出監(jiān)牢的瞬間撬即,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工呈队, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留剥槐,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,237評(píng)論 3 371
  • 正文 我出身青樓宪摧,卻偏偏與公主長(zhǎng)得像粒竖,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子几于,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,976評(píng)論 2 355

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