AndroidStudio出现Resolved versions for app (25.3.1) and test app (27.1.1) differ. 问题解决办法


在项目中手动修改targetSdkVersion之后重新编译Module发现错误:

Error:Execution failed for task ':app:preDebugAndroidTestBuild'.
> Conflict with dependency 'com.android.support:support-annotations' in project ':app'. Resolved versions for app (25.3.1) and test app (27.1.1) differ. See https://d.android.com/r/tools/test-apk-dependency-conflicts.html for details.
这个原因是因为修改了targetSdkVersion之后所依赖的,意思就是说测试版本用的库和编译版本不同,
'com.android.support:appcompat-v7:25.3.1'

v7包和测试类使用的版本不相同,

Resolved versions for app (25.3.1) and test app (27.1.1) differ.

一开始是觉得手动修改依赖测试包版本为25.3.1即可,实则不然。

下面是我本地build.gradle中原来的写法:

implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:25.3.1'
    implementation 'com.android.support.constraint:constraint-layout:1.1.0'
    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'

经过查找资料后发现在http://stackoverflow.com/questions/28999124/resolved-versions-for-app-22-0-0-and-test-app-21-0-3-diffe给出了一些解释:

+--- 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那一项当中还有包含27.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里面就可以了。再去试一试

    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:25.3.1'
    implementation 'com.android.support.constraint:constraint-layout:1.1.0'
    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'
    configurations.all {
        resolutionStrategy.force 'com.android.support:support-annotations:25.3.1'
    }

重新编译,成功。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值