转换为Dalvik格式失败:无法执行dex:多个dex文件定义了Lcom / squareup / okhttp / Address;

3

我在StackOverflow上看到过大约100次有关此问题的提问,但并没有一个答案可以解决所有问题。这是我的构建路径:

Java build path

然而,我仍然遇到了以下问题:

[2014-05-03 11:44:33 - Dex Loader] Unable to execute dex: Multiple dex files define Lcom/squareup/okhttp/Address;
[2014-05-03 11:44:33 - Untappd] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lcom/squareup/okhttp/Address;

什么是解决这个问题的最佳和最简单的方法?当我尝试手动添加一个新版本的Aviary SDK到我的项目中时,我遇到了这个问题,删除旧项目并添加新项目时出现了这个问题。我已经尝试过清理和重建,但不起作用。


你尝试过移除显式的 okhttp 依赖吗?如果其他 jar 文件中已经包含了它,也许你不需要单独引入它... - Jon Skeet
我该怎样显式地移除依赖项? - gregavola
我没有注意到那是“私有库”部分。嗯,那就不确定了 :( - Jon Skeet
如果我悬停在okhttp依赖项上,我无法删除它:http://im.grega.co/image/170K0I240j13 - gregavola
2个回答

4

问题确实是CordovaLib包含okhttp。对于Cordova < 4,Okhttp < 2 - Hugo Gresse

1
多 dex 文件错误告诉您,您正在从不同的源包含相同的类文件。请确保您没有这样做。也请检查 libs 文件夹。

我想这就是我的问题 - 我该如何验证呢?这是libs文件夹的链接:http://im.grega.co/image/3H0e1s072l0T - gregavola
4
问题在于你的 CordovaLib 目录中。它已经包含了 okhttp 的源代码。尝试从该目录中删除 okhttp 的源代码,然后再试一次。我已经创建了一个解决这个问题的 issue。https://issues.apache.org/jira/browse/CB-6630 - Joe B

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接