2011-05-10 150 views
1

这里是我的错误:转换为Dalvik的格式失败,错误1

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

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

谢谢你们。

+0

发现我的错误,是蚂蚁 – tsync 2011-05-10 12:55:39

回答

2

您的工具链使用Jackson JSON解析器的多个副本调用dx。你会想确保你的项目库不包含Jackson的两个副本。你可以看到,如果一个单独的jar文件包含杰克逊jargrep

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

我得到了同样的错误,由于我被导入外部罐子。原来,外部jar有每个类重复的条目。解决的办法是在ant build文件(我有权访问外部库的完整源代码)中为jar元素重新创建外部库的jar文件。

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

如果您没有访问Ant构建文件,你可以手动取消-JAR的jar文件,再删除重复和重新罐子它。

0

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

尝试了所有的常用Eclipse的修复方法,干净,改造,启动/如果你使用的是Eclipse的Eclipse停止,新的工作区等

,这是我如何解决它,而无需管理的.jar的。

1)在Eclipse中,右键点击你的项目属性

2)点击Java编译器

3)点击

4号楼),点击配置工作区设置

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

6)单击输出文件夹

7)点击'重建他人修改的类文件'

希望这会有所帮助。

相关问题