Android studio更新到2.2之後出現的問題
阿新 • • 發佈:2019-01-09
更新完AS之後去寫作業,發現怎麼弄都是沒法執行,提示的錯誤是Conflict with dependency 'com.android.support:support-annotations'. Resolved versions for app (22.2.1) and test app (23.1.1) differ. See http://g.co/androidstudio/app-test-app-conflict for details.
大致意思就是說你測試版本用的庫和最終用的庫版本號不一致
開啟後面給的連結發現真的是什麼都沒說啊!百度了半天沒有找到什麼中文資料,只能看看國外的網站有什麼相關的解決方法。
折騰了好久大概總結出來問題在哪裡了。寫下來幫大家解決這個問題。
首先先定位問題出現在哪裡,build.gradle裡面的dependencies裡面
一眼瞅過去肯定以為只要把最後一項dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:22.2.1' compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha1' testCompile 'junit:junit:4.12' androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2' androidTestCompile 'com.android.support.test:runner:0.5' androidTestCompile 'com.android.support:support-annotations:23.1.1' }
com.android.support:support-annotations:23.1.1
後面修改為22.2.1就行了是吧?naive。
我這麼試了發現根本就不行。查了好久才發現並不只是這一句有問題,在google之後http://stackoverflow.com/questions/28999124/resolved-versions-for-app-22-0-0-and-test-app-21-0-3-differ給出了一些解釋。
Looks like it's espresso-contrib
+--- com.android.support.test:testing -support-lib:0.1(*)
\--- com.android.support.test.espresso:espresso-contrib:2.0+--- com.android.support:recyclerview-v7:21.0.3|+--- com.android.support:support-annotations:21.0.3| \--- com.android.support:support-v4:21.0.3| \--- com.android.support:support-annotations:21.0.3+--- com.android.support:support-v4:21.0.3(*)
\--- com.android.support.test.espresso:espresso-core:2.0(*)
參考過後就知道了,就是說下面的androidTestCompile專案中,espresso那一項當中還有包含23.1.1的引用,你要是把androidTestCompile那幾條都註釋了再執行就發現編譯通過了。。。
下面有人回答說Actually it's a bug of new update version of Espresso Contrib
好吧,有幸遇到這種存在在環境中的bug了,給出的解決方法簡單粗暴,新增force強制指定annotations
configurations.all {
resolutionStrategy.force 'com.android.support:support-annotations:22.1.0'}
把這一項新增到dependencies裡面就可以了。再去試一試dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.2.1'
compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha1'
testCompile 'junit:junit:4.12'
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2'
androidTestCompile 'com.android.support.test:runner:0.5'
androidTestCompile 'com.android.support:support-annotations:22.2.1'
configurations.all {
resolutionStrategy.force 'com.android.support:support-annotations:22.1.0'
}
}
終於build successful