与依赖 'com.squareup.okio: okio' 冲突

Posted

技术标签:

【中文标题】与依赖 \'com.squareup.okio: okio\' 冲突【英文标题】:Conflict with dependency 'com.squareup.okio: okio'与依赖 'com.squareup.okio: okio' 冲突 【发布时间】:2017-10-15 23:30:21 【问题描述】:

在使用 android Studio 运行我的代码时,它会生成以下错误:

警告:与依赖项 'com.squareup.okio: okio' 冲突。应用程序 (1.11.0) 和测试应用程序 (1.6.0) 的已解决版本不同。详情请见http://g.co/androidstudio/app-test-app-conflict。

【问题讨论】:

【参考方案1】:

如果您访问上述网站 (http://g.co/androidstudio/app-test-app-conflict),您可以阅读解决此问题的不同选项。

如果您无法缩小冲突库的范围,请先运行以下命令,查看哪些版本存在冲突:

./gradlew :app:dependencies

这个问题有两种可能的解决方案:

1.- 更改库版本,使它们不再冲突

2.- 使用Gradle Conflict Resolution Mechanism 指定要解析到的版本。

【讨论】:

我什至没有直接使用 okio,并且遇到了这个问题。【参考方案2】:

也许您正在添加此库以使用 retrofit2 进行 expresso UI 测试

androidTestCompile 'com.jakewharton.espresso:okhttp3-idling-resource:1.0.0'

这是我的解决方案的样子:

 androidTestCompile 'com.jakewharton.espresso:okhttp3-idling-resource:1.0.0',
        exclude group: 'com.squareup.okio', module: 'okio'
        exclude group: 'com.squareup.okhttp3', module: 'okhttp'
    

它将阻止 gradle 下载冲突的依赖项。

出现此问题是因为您添加了 androidTestCompile 而不是普通的compile。如果你用后者替换前者,错误就会消失。我认为原因是 gradle 会选择最高依赖的版本。

【讨论】:

以上是关于与依赖 'com.squareup.okio: okio' 冲突的主要内容,如果未能解决你的问题,请参考以下文章

安卓 原生okhttp使用get与post获取网络数据

android 找不到类 import okio.buffer import okio.source

Android OkHttp 讲解

七牛云 网络存储 文件上传

OkHttp的使用总结

OkHttp3的简单使用