1

这是我的错误:

UNEXPECTED TOP-LEVEL EXCEPTION:
java.lang.IllegalArgumentException: already added: Lorg/codehaus/jackson/Base64Variant;
Conversion to Dalvik format failed with error 1

好吧,5分钟前它起作用了。没有改变任何东西(只是再次启动了 android 模拟器) - 那么现在发生了什么?

多谢你们。

4

3 回答 3

2

您的工具链正在调用dxJackson JSON 解析器的多个副本。您需要确保您的项目库不包含 Jackson 的两个副本。您可以查看单个 jar 文件是否包含带有jarand的 Jackson grep

jar tvf lib/some-library.jar | grep jackson
于 2011-05-10T15:48:21.483 回答
0

由于我正在导入一个外部 jar,我得到了同样的错误。事实证明,外部 jar 对每个类都有重复的条目。解决方案是在 ant 构建文件的jar元素中使用duplicate="preserve"为外部库重新创建 jar文件(我可以访问外部库的完整源代码)。

<jar destfile="${buildlib}/external.jar" manifest="${lib}/external.manifest" basedir="${dest}" duplicate="preserve">

如果您无权访问 ant 构建文件,您可以手动解压缩 jar 文件,删除重复项并再次重新 jar。

于 2011-09-09T12:50:29.193 回答
0

我遇到了一个非常相似的问题 Unable to execute dex: Multiple dex files defined Lorg/codehaus/jackson/Base64Variant using Google Drive api's and Google Spreadsheet api's。

尝试了所有常用的 Eclipse 修复方法,清理、重建、启动/停止 Eclipse、新工作区等。

如果您使用的是 Eclipse,这就是我无需管理 .jar 即可解决的方法。

1)在Eclipse中,右键单击您的项目属性

2)点击Java编译器

3) 点击建筑

4) 单击配置工作区设置

5) 单击启用项目特定设置

6)点击输出文件夹

7)点击“重建其他人修改的类文件”

希望这可以帮助。

于 2013-06-29T21:06:15.737 回答