在Eclipse中的Android应用程序中,我得到了以下错误。

意想不到的顶级异常: java.lang.IllegalArgumentException:已添加:Lorg/xmlpull/v1/XmlPullParser; .... 转换到Dalvik格式失败,错误1

此错误仅在向项目添加特定的外部JAR文件时出现。我花了很长时间寻找可能的解决方案,但没有一个可行。

我甚至尝试将Android 1.6而不是1.5(我目前使用的版本)。


当前回答

我也遇到过同样的问题,但这些方法都不起作用。 最后,我在控制台中看到错误是由于重复的类(一个在现有项目中,一个在添加的jar文件中):

java.lang.IllegalArgumentException: already added: package/MyClassclass;
[2011-01-19 14:54:05 - ...]: Dx1 error; aborting
[2011-01-19 14:54:05 - ...] Conversion to Dalvik format failed with error 1

因此,请检查您是否在项目中添加了带有重复类的jar。 如果是,请尝试移除其中一个。

这对我很管用。

其他回答

通常,当构建路径中存在不必要的JAR文件时,似乎就会出现这个问题。

我在开发IntelliJ IDEA时遇到了这个问题。对我来说,这是因为我添加了JUnit和Mockito库,它们在运行时被编译。这需要在模块属性中设置为“testing”。

我正在使用ADT r14,当我尝试添加任何库项目时,我得到了这个错误。对我来说,有效的方法就是将ADT更新到最新版本。它立刻解决了问题。我尝试了几乎所有的工作给stackoverflow,但没有其他真正为我工作。

我也面临着这个问题,当我添加相同的jar文件与不同的版本,我只是删除旧版本的jar和清洁项目,它为我工作很好。

最好将所有*.jar文件包含在项目文件夹树的“lib”目录中。这样,您就不需要通过转到项目的属性来定义构建路径。"lib"已经是一个构建路径

对我来说

项目->属性->java build path -> in order and export TAB ->取消选中android-support-v4.jar