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

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

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

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


当前回答

对我来说,问题在于我设置了错误的编译器遵从级别(1.8而不是1.7)。

这个答案解决了问题:

在Project SDK部分,当你添加Android SDK时,你应该 提供Java SDK和所有我的Android SDK使用Java 8作为SDK,所以它 创建版本错误的类文件,即使项目 等级是1.7(我不知道为什么,我以为一切都被选中了 按项目级别划分)。现在我改变了SDK (java版本“1.x.0”) 部分)。

其他回答

我用另一种方法找到了解决办法。 https://stackoverflow.com/a/14948244/1014288

多亏了这个,你可以修复没有删除和东西

没有什么能帮到我,但这里建议的解决方案非常有效:

例如,将-optimizations !code/allocation/variable添加到proguard-project.txt中

我也犯了同样的错误,我尝试了上面所有的方法,但都无济于事。

我的项目是挂在GIT源码管理系统上的,在导出到android应用的过程中,我发现有一些GIT相关的任务。然后我将所有更改提交到GIT存储库,错误消失了。

因此,如果您正在使用GIT进行源代码控制,而上述方法对您没有任何帮助,请尝试将所有更改提交到GIT存储库(并最终推到上游),然后再次尝试导出。

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

这些答案对我都没用。我的问题是由JUnit和hamcrest引起的。参见java.lang.IllegalArgumentException: already added: Lorg/hamcrest/BaseDescription;转换到Dalvik格式失败,错误1