Android支持库错误更新到23.3.0后
您好我一直在使用android支持v4 23.1.1,最近试图更新到23.3.0(这是最新的一个问),但我得到了以下错误:
错误:与依赖项com.android.support:support-annotations冲突。 应用程序(23.3.0)和testing应用程序(23.1.1)的已解决版本不同。 有关详细信息,请参阅http://g.co/androidstudio/app-test-app-conflict 。
到目前为止,我已经find了这个https://code.google.com/p/android/issues/detail?id=206137
我去了这两个链接,但我不能解决我的问题,我该如何解决这个问题?
编辑:
我有这些在我的依赖
compile 'com.android.support:support-v4:23.3.0' compile 'com.android.support:appcompat-v7:23.3.0' compile 'com.android.support:recyclerview-v7:23.3.0' compile 'com.android.support:cardview-v7:23.3.0' compile 'com.android.support:design:23.3.0'
以前所有的版本都是23.1.1
并且更新后错误发生的效果很好
编辑:
Gradle Version 2.10 Gradle Plugin Version 2.0.0 buildToolsVersion "23.0.3"
对于那些仍然面临这个问题的人,只需将这一行添加到您的依赖关系。
androidTestCompile 'com.android.support:support-annotations:23.3.0'
它解决了我的问题。
对于那些仍然面临这个问题,上面的答案没有帮助我在Android Studio 2.2预览。
把这个添加到你的gradle文件中。
configurations.all { resolutionStrategy { force 'com.android.support:support-annotations:23.1.1' } }
这解决了我的问题。
参考: https : //github.com/JakeWharton/u2020/blob/05a57bf43b9b61f16d32cbe8717af77cd608b0fb/build.gradle#L136-L140
只是示例Akshayraj的答案
原始Gradle文件:
dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') [...] compile 'com.android.support:support-annotations:25.3.0' androidTestCompile 'com.android.support.test:runner:0.5' androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2' }
收到错误:
错误:与项目“:app”中的依赖关系“com.android.support:support-annotations”冲突。
应用程序(25.1.0)和testing应用程序(23.1.1)的已解决版本不同。
有关详细信息,请参阅http://g.co/androidstudio/app-test-app-conflict 。 “
固定时,我补充说:
androidTestCompile 'com.android.support:support-annotations:25.3.0'
最终文件:
dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') [...] compile 'com.android.support:support-annotations:25.3.0' androidTestCompile 'com.android.support:support-annotations:25.3.0' androidTestCompile 'com.android.support.test:runner:0.5' androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2' }
我的orignal app.gradle有:
dependencies { // App dependencies compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.4.0' // Testing-only dependencies androidTestCompile 'com.android.support.test:runner:0.3' androidTestCompile 'com.android.support.test:rules:0.3' androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2' }
导致以下错误:
错误:与依赖项com.android.support:support-annotations冲突。 应用程序(23.4.0)和testing应用程序(22.2.0)的已解决版本不同。 有关详细信息,请参阅http://g.co/androidstudio/app-test-app-conflict 。
在阅读错误提示的链接后,我find了这些行:
当仪器testing运行时,主APK和testingAPK共享相同的类path。 如果主APK和testingAPK使用相同的库(例如Guava),但是使用不同的版本,则Gradle构build将失败。 如果gradle没有捕捉到,那么在testing和正常运行期间(包括崩溃),您的应用可能会有不同的performance。
所以我修改了我的app.gradle依赖关系:
dependencies { // App dependencies compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.4.0' // Testing-only dependencies androidTestCompile 'com.android.support:support-annotations:23.3.0' androidTestCompile 'com.android.support.test:runner:0.3' androidTestCompile 'com.android.support.test:rules:0.3' androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2' }
即使在上述改变之后,gradle并不开心:-(:
错误:与依赖项com.android.support:support-annotations冲突。 应用程序(23.4.0)和testing应用程序(23.3.0)的已解决版本不同。 有关详细信息,请参阅http://g.co/androidstudio/app-test-app-conflict 。
testingapk版本的变化是不同的! 所以我修改了以下粘贴的版本string:
(涅磐)
dependencies { // App dependencies compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.4.0' // main APK // Testing-only dependencies androidTestCompile 'com.android.support:support-annotations:23.4.0' //test APK androidTestCompile 'com.android.support.test:runner:0.3' androidTestCompile 'com.android.support.test:rules:0.3' androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2' }
你必须使用相同的版本的应用程序和androidTest APK。 为此,请指定与您的应用程序相同的版本,
androidTestCompile 'com.android.support:support-annotations:24.1.1'
其中24.1.1是在您的应用程序中使用的依赖项的版本号
compile 'com.android.support:design:24.1.1'
/* Resolves dependency versions across test and production APKs, specifically, transitive dependencies. This is required since Espresso internally has a dependency on support-annotations. */ configurations.all { resolutionStrategy.force "com.android.support:support-annotations:$rootProject.supportLibraryVersion" }