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

Android 转换为Dalvik格式失败,错误为1,android,android-emulator,dalvik,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模拟器)-那么现在发生了什么 谢谢各位 您的工具链正在使用Jackson

这是我的错误:

UNEXPECTED TOP-LEVEL EXCEPTION:
java.lang.IllegalArgumentException: already added: Lorg/codehaus/jackson/Base64Variant;
Conversion to Dalvik format failed with error 1
哦,5分钟前,它起作用了。没有改变任何东西(只是再次启动了android模拟器)-那么现在发生了什么


谢谢各位

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

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

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



如果您没有访问ant构建文件的权限,您可以手动取消jar文件的jar,删除重复项,然后重新jar它

我在无法执行dex时遇到了一个非常类似的问题:多个dex文件使用Google Drive api和Google电子表格api定义Lorg/codehaus/jackson/Base64Variant

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

如果您使用的是Eclipse,我就是这样解决的,而不必管理.jar

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

2) 单击Java编译器

3) 点击建筑

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

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

6) 点击输出文件夹

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

希望这有帮助

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