升级到API 22并支持lib修订版本22后,出现以下警告:
警告:与依赖关系com.android.support:support-annotations冲突。 应用程序(22.0.0)和testing应用程序(21.0.3)的已解决版本不同。
Gradle本身更为宽容,但Android Studio并不是那么重要。
我没有与21.0.3声明的依赖关系…是使用21.0.3的依赖库之一,谷歌忘记更新与批处理的其余部分?
我的build.gradle
与extras剪掉了
android { compileSdkVersion 22 buildToolsVersion '22' defaultConfig { applicationId "com.REDACTED.android" minSdkVersion 14 targetSdkVersion 22 renderscriptSupportModeEnabled true versionName '1.0.0' versionCode 100 } buildTypes { release { minifyEnabled true zipAlignEnabled true signingConfig signingConfigs.release } debug { minifyEnabled false zipAlignEnabled true signingConfig signingConfigs.debug } } dependencies { provided 'org.projectlombok:lombok:1.16.2' googleCompile 'com.google.android.gms:play-services-base:6.5.87' compile 'com.android.support:support-v4:22.0.0' compile 'com.android.support:appcompat-v7:22.0.0' compile 'com.android.support:support-v13:22.0.0' compile 'com.android.support:cardview-v7:22.0.0' compile 'com.android.support:palette-v7:22.0.0' compile 'com.android.support:support-annotations:22.0.0' compile 'com.github.chrisbanes.photoview:library:1.2.3' compile 'org.apache.commons:commons-lang3:3.3.2' compile 'commons-io:commons-io:2.4' compile 'commons-codec:commons-codec:1.10' compile 'com.jakewharton:butterknife:6.1.0' compile 'com.jakewharton:disklrucache:2.0.2' compile 'com.squareup:otto:1.3.6' compile 'com.squareup.picasso:picasso:2.5.0' compile 'com.squareup.retrofit:retrofit:1.9.0' compile 'com.squareup.okhttp:okhttp:2.2.0' compile 'com.squareup.okhttp:okhttp-urlconnection:2.2.0' compile 'com.squareup.okio:okio:1.2.0' compile 'com.flaviofaria:kenburnsview:1.0.6' compile 'com.edmodo:cropper:1.0.1' compile 'com.getbase:floatingactionbutton:1.8.0' compile 'com.nispok:snackbar:2.10.2' compile 'com.github.ksoichiro:android-observablescrollview:1.5.0' compile 'in.srain.cube:grid-view-with-header-footer:1.0.9' compile 'de.hdodenhof:circleimageview:1.2.2' compile fileTree(dir: 'libs', include: '*.jar') // Test Only Dependencies androidTestCompile 'com.android.support.test.espresso:espresso-core:2.0' androidTestCompile 'com.android.support.test:testing-support-lib:0.1' androidTestCompile 'com.android.support.test.espresso:espresso-contrib:2.0' }
更新:(感谢马克)
看起来像是浓缩咖啡
+--- 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 (*)
处理这类事情的第一步就是使用命令行Gradle。
第二步是运行Gradle依赖关系报告 (例如,从项目根目录下的gradle -q app:dependencies
)。 这将提供ASCII树,如问题更新中所示,并且它应该帮助您确定什么是要求冲突的神器版本。
第三步是决定需要更换什么。 你select只取代冲突( support-annotations
)。 就个人而言,我会recyclerview-v7
错误版本树( recyclerview-v7
)的根目录,尽pipe我知道这可能不是这种情况下最好的行为方式。
步骤#4是添加exclude
指令来阻止您在步骤#3中select的内容:
androidTestCompile ('com.android.support.test.espresso:espresso-contrib:2.0') { exclude module: 'support-annotations' }
第五步是testing这个变化。 你在做的是说espresso-contrib
必须处理22.0.0版本的support-annotations
。 这可能工作。 这可能不会。 这取决于冲突的向后兼容性。 在这种情况下, support-annotations
应该是相当不错的。
步骤#6是消费你select的饮料,一个适合你的地点和一天的时间。
我所做的解决它是将下面的行添加到我的build.gradle脚本
androidTestCompile 'com.android.support:support-annotations:xx.xx'
将xx.xx
replace为您应用程序使用的任何版本的支持注释 – 将显示在您的依赖项中,或将Gradle同步消息显示为: Resolved version for app (xx.xx)
应该在同步时出现问题。
其实这是一个新的更新版本的Espresso Contrib的错误,你可以参考这个解决方法: android-testing / build.gradle
configurations.all { resolutionStrategy.force 'com.android.support:support-annotations:22.1.0' }
请参考
configurations.all { resolutionStrategy { force 'com.android.support:support-annotations:23.1.1' } }
这解决了我的问题。
或者,你可以在Windows上运行gradlew,在mac / linux上运行./gradlew,这将在需要的时候下载你的依赖
为sdkversion 25
androidTestCompile 'com.android.support:support-annotations:25.2.0'
我也遇到了这个问题,以及涉及到appcompat的其他冲突,我发现解决scheme是添加testing编译,并将其设置为您正在使用的SDK。 在我的情况下,它是25,所以它看起来像这样:
androidTestCompile 'com.android.support:support-annotations:25.+' androidTestCompile 'com.android.support:appcompat-v7:25.+' androidTestCompile 'com.android.support:support-v4:25.+' androidTestCompile 'com.android.support:recyclerview-v7:25.+' androidTestCompile 'com.android.support:design:25.+'
此外,正如您所看到的,我添加了与Android Material Design相关的devise依赖关系。
希望它有助于=)
你可以在windows上运行gradlew,在mac / linux上运行./gradlew,这将在需要的时候下载你的依赖。
你可以检查一个库是否依赖于支持注释或者任何被错误命名的库,并且试图将其排除
compile(“org.apache.maven:maven-ant-tasks:$ {mavenAntTaskVer}”){exclude group:'junit'}
错误:与依赖关系“junit:junit”冲突。 应用程序(3.8.1)和testing应用程序(4.12)的已解决版本不同。 有关详细信息,请参阅g.co/androidstudio/app-test-app-conflict。
这是我得到的错误,所以我用上面的gradle线来解决这个问题
这是仪器testing中的常见问题,可以通过在build.gradle中添加androidTestCompile的依赖关系来解决。 在我的情况下,在appcompat,recyclerview和devise依赖关系中出现冲突。 并通过添加以下行来解决
androidTestCompile 'com.android.support:appcompat-v7:23.4.0' androidTestCompile 'com.android.support:recyclerview-v7:23.4.0' androidTestCompile 'com.android.support:design:23.4.0'
以上就是android开发分享应用程序(22.0.0)和testing应用程序(21.0.3)的已解决版本不同相关内容,想了解更多android开发(异常处理)及android游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/addevelopment/520113.html