Android - 記如何解決Conflict with dependency 'com.android.support:support-annotations'

版本沖突天天見

最近刻蟹,和 AS 君的某個(gè)紅色小錯(cuò)誤非常有緣分跃须,經(jīng)常見面蚤吹。

image

從報(bào)錯(cuò)信息中,得知是沖突原因是 support-annotations 有兩個(gè)版本充易, 26.1.0 和 27.1.1 梗脾。

感覺瞬間就找到了問題有沒有?
Too young too simple ,sometime naive 蔽氨。

因?yàn)?build.gradle 中并沒有對(duì) support-annotations 的明顯依賴藐唠。

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:26.1.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.2'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

依賴樹溯源

對(duì)于以上問題,處理 AS 爆紅的多年經(jīng)驗(yàn)告訴我鹉究,需要打印項(xiàng)目的依賴樹的時(shí)候到了!

./gradlew :app:dependencyInsight --dependency support-annotations --configuration debugAndroidTestCompileClasspath

使用 dependencyInsight 命令支持查看某個(gè)庫在項(xiàng)目中的版本依賴踪宠。報(bào)錯(cuò)信息說明沖突發(fā)生在 for app 和 for test app 自赔,因此選擇打印 debugAndroidTestCompileClasspath 配置下的依賴樹。

image

拿到依賴樹柳琢,結(jié)合項(xiàng)目的 build.gradle 绍妨,對(duì)比得到造成沖突是這仨庫的鍋:

  • com.android.support:appcompat-v7:26.1.0 ---> (26.1.0)

  • com.android.support.test:runner:1.0.2 ---> (27.1.1)

  • com.android.support.test.espresso:espresso-core:3.0.2 ---> (27.1.1)

原因找到了润脸,問題就很好解決了,排除掉沖突的其中一個(gè)版本即可他去。因?yàn)?support 庫一般要保持統(tǒng)一版本毙驯,所以我選擇排除其他庫的沖突版本。

androidTestImplementation ('com.android.support.test:runner:1.0.2'){
      exclude group: 'com.android.support'
  }
androidTestImplementation ('com.android.support.test.espresso:espresso-core:3.0.2'){
      exclude group: 'com.android.support'
  }

另一個(gè)方法

開發(fā)工作中灾测,遇到依賴庫版本沖突問題爆价,是很常見的問題,通過以上步驟基本都能解決媳搪,但是有時(shí)候項(xiàng)目很龐大铭段,找起來挺費(fèi)事。針對(duì)這種情況秦爆,有一個(gè)簡單粗暴的方法序愚。

在 project 的 build.gradle 中添加如下的代碼。作用是在項(xiàng)目構(gòu)建時(shí)等限,遍歷所有依賴爸吮,然后 com.android.support 包下的依賴替換同一個(gè)版本。


buildscript {

      subprojects {
            project.configurations.all {
                resolutionStrategy.eachDependency { details ->
                    if (details.requested.group == 'com.android.support'
                            && !details.requested.name.contains('multidex') ) {
                        details.useVersion "26.1.0"
                    }
                }
            }
        }
    
}

這個(gè)方法望门,解決的很有效率形娇,但是每次構(gòu)建的時(shí)候,多了一個(gè)遍歷過程怒允,會(huì)加長構(gòu)建時(shí)間埂软。因此,只建議應(yīng)急用纫事,推薦使用 exclude 關(guān)鍵字排除勘畔。


以上就是最近一次解決問題的經(jīng)驗(yàn)分享,希望對(duì)大家有幫助丽惶。

小伙伴們?nèi)绻X得還不錯(cuò)炫七,或者發(fā)現(xiàn)了錯(cuò)誤,或者有更好的想法钾唬。都請(qǐng)不要害羞万哪,大聲說出來,作者熱烈歡迎你的點(diǎn)贊和留言吶抡秆。

歡迎關(guān)注博主的微信公眾號(hào)奕巍,快快加入,期待與你一起成長儒士!
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末的止,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子着撩,更是在濱河造成了極大的恐慌诅福,老刑警劉巖匾委,帶你破解...
    沈念sama閱讀 219,539評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異氓润,居然都是意外死亡赂乐,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門咖气,熙熙樓的掌柜王于貴愁眉苦臉地迎上來挨措,“玉大人,你說我怎么就攤上這事采章≡耸龋” “怎么了?”我有些...
    開封第一講書人閱讀 165,871評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵悯舟,是天一觀的道長担租。 經(jīng)常有香客問我,道長抵怎,這世上最難降的妖魔是什么奋救? 我笑而不...
    開封第一講書人閱讀 58,963評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮反惕,結(jié)果婚禮上尝艘,老公的妹妹穿的比我還像新娘。我一直安慰自己姿染,他們只是感情好背亥,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評(píng)論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著悬赏,像睡著了一般狡汉。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上闽颇,一...
    開封第一講書人閱讀 51,763評(píng)論 1 307
  • 那天盾戴,我揣著相機(jī)與錄音,去河邊找鬼兵多。 笑死尖啡,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的剩膘。 我是一名探鬼主播衅斩,決...
    沈念sama閱讀 40,468評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼怠褐!你這毒婦竟也來了矛渴?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤惫搏,失蹤者是張志新(化名)和其女友劉穎具温,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體筐赔,經(jīng)...
    沈念sama閱讀 45,850評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡铣猩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了茴丰。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片达皿。...
    茶點(diǎn)故事閱讀 40,144評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖贿肩,靈堂內(nèi)的尸體忽然破棺而出峦椰,到底是詐尸還是另有隱情,我是刑警寧澤汰规,帶...
    沈念sama閱讀 35,823評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響想罕,放射性物質(zhì)發(fā)生泄漏屎蜓。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評(píng)論 3 331
  • 文/蒙蒙 一茂嗓、第九天 我趴在偏房一處隱蔽的房頂上張望餐茵。 院中可真熱鬧,春花似錦述吸、人聲如沸忿族。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽道批。三九已至,卻和暖如春朴读,著一層夾襖步出監(jiān)牢的瞬間屹徘,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評(píng)論 1 272
  • 我被黑心中介騙來泰國打工衅金, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留噪伊,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,415評(píng)論 3 373
  • 正文 我出身青樓氮唯,卻偏偏與公主長得像鉴吹,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子惩琉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評(píng)論 2 355

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

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,190評(píng)論 25 707
  • 說明 本文主要介紹和Gradle關(guān)系密切豆励、相對(duì)不容易理解的配置,偏重概念介紹。部分內(nèi)容是Android特有的(例如...
    jzj1993閱讀 15,638評(píng)論 1 62
  • 想到哪里寫到哪里吧良蒸,關(guān)于生活技扼,關(guān)于回憶,關(guān)于愛情嫩痰,想說的很多剿吻,又不知從何說起,那就先寫出來串纺,再來分丽旅。
    斯德瑞伊爾閱讀 188評(píng)論 0 1
  • <!DOCTYPE HTML> <from> </from>
    碼農(nóng)的碎事閱讀 205評(píng)論 0 0
  • 一直以來,我都是一個(gè)好人纺棺。 但是榄笙,我并不喜歡自己的好人形象。最直接的原因是祷蝌,我深深的感覺到茅撞,我不自在。 我的笑容是...
    樹梢上的小巨人閱讀 137評(píng)論 0 0