当前位置: 代码迷 >> 综合 >> android studio 报 Resolved versions for app (26.1.0) and test app (27.1.1)differ 错误的原因与解决方法
  详细解决方案

android studio 报 Resolved versions for app (26.1.0) and test app (27.1.1)differ 错误的原因与解决方法

热度:39   发布时间:2024-01-14 12:37:51.0

最近忙着学校课题好久没有搞Android,找了个开源项目做了做,刚新建完项目编译就报了如下错误:

意思应该是本地和测试包依赖的项目版本不同导致。

神奇的是我们重新ReBuild一下项目这个报错就没了,但是本着求实的态度我还是去搜索了一下产生的原因:

首先是我的项目的依赖

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.3'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'
}

一开始我把26.1.0改成和测试包版本相同,但是提示需要需要APK27的SDK,这个肯定和我原本的初衷违背,于是思考其他方法。

之后在stackoverflow上面找到了一个类似的问题:https://stackoverflow.com/questions/28999124/resolved-versions-for-app-22-0-0-and-test-app-21-0-3-differ

首先直接说一下解决方案,我们可以简单粗暴,添加force强制指定annotations


configurations.all {resolutionStrategy.force 'com.android.support:support-annotations:26.1.0'
}

事实上这个应该是最新版本的Espresso Contrib(一种AndroidUI的自动化测试框架)的Bug。

最后解决这种类似问题的思路我也在另一篇博客里面给出了,有需要的可用看看:获取Gradle依赖报告

  相关解决方案