转换为Dalvik格式失败,错误1

时间:2011-05-10 12:31:55

标签: android android-emulator dalvik

这是我的错误:

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

嗯,5分钟前它有效。没有改变任何东西(只是再次启动了android模拟器) - 所以现在发生了什么?

谢谢你们。

3 个答案:

答案 0 :(得分:2)

您的工具链正在使用Jackson JSON解析器的多个副本调用dx。您需要确保您的项目库不包含两份Jackson。您可以查看单个jar文件是否包含带有jargrep的杰克逊:

jar tvf lib/some-library.jar | grep jackson

答案 1 :(得分:0)

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

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

如果您无法访问ant构建文件,则可以手动取消jar文件的jar,删除重复项并重新进行jar。

答案 2 :(得分:0)

我有一个非常类似的问题无法执行dex:多个dex文件使用Google Drive api和Google Spreadsheet api定义Lorg / codehaus / jackson / Base64Variant。

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

如果你正在使用Eclipse,这就是我在不必管理.jar的情况下解决它的方法。

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

2)单击Java Compiler

3)点击Building

4)单击“配置工作区设置”

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

6)单击输出文件夹

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

希望这有帮助。

相关问题