我遇到过类似的问题,这表明同样的问题。但是,就我而言,它似乎以不同的方式发生,不应产生如下所述的问题:
想象一下,我有两个内部私有库,发布在私有 Maven 存储库上,命名如下:
com.x.y.analytics
com.x.y.player
Run Code Online (Sandbox Code Playgroud)
这两个库都使用 OkHttp 3.6.0 和下面给定的代码片段:
provided 'com.squareup.okhttp3:okhttp:3.6.0'
Run Code Online (Sandbox Code Playgroud)
所以基本上,当我向 maven 发布 aar 时,我不包含实际的库,我编译它并将其提供给父项目中提到的库,代码片段如下:
compile 'com.squareup.okhttp3:okhttp:3.6.0'
Run Code Online (Sandbox Code Playgroud)
但是,即使由于这个库只有 1 个编译版本,一切都应该没问题,但我有下面给出的错误:
错误:任务 ':application:transformClassesWithJarMergingForDebug' 执行失败。
com.android.build.api.transform.TransformException:java.util.zip.ZipException:重复条目:okhttp3/Address.class
我相信如果我使用 compile 将库注入到私有库中会发生这个问题,但是由于我使用了提供的,如果有任何修复的线索,你能详细说明这个问题吗?
PS:OkHttp 的 GitHub 项目也有一个 issue,可以在这里找到。
我遇到过同样的问题。我试图添加这一行
android {
configurations {
all*.exclude group: 'com.squareup.okhttp3', module: 'okhttp'
}
}
Run Code Online (Sandbox Code Playgroud)
它对我来说很好用。请尝试这样做。