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

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

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

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


当前回答

我刚刚用最新的API和最新的sdk和工具安装了最新的eclipse,但是,几年过去了,这个错误并没有消失。我浪费了一天时间才想出来。尝试一切。徒劳无功。因为这个信息是非常通用的,很多不同的问题都会引发它。因此,一些人提出的解决方案并不适用于另一些人。

一个好的方法是去Window > Preferences > Android > Build and UNCHECK“Skip packaging and dexing…”这样,在构建时就可以获得更多关于特定错误的线索,而不仅仅是导出。

在我的情况下,我得到了一个“Dx不支持的类文件版本…”。这个错误我在这里没有看到报告。基于此,我发现我使用的一些旧jar是用1.6编译的,而另一些是用1.7编译的。因此,我将默认的IDE编译器遵从级别更改为1.6 (Window > Preferences > Java > compiler),在完全清理和重建我拥有的每个依赖后,我终于可以生成我的APK。

其他回答

对于仍然有这个问题的其他人,他们尝试了上面的答案但仍然得到错误(这是我的情况),那么我的解决方案是从Eclipse中删除项目并重新导入它。

这使得Android库再次添加到我的引用库中,所以现在我有两个Android JAR文件引用,因此我删除了其中一个,现在它编译良好。

解决方案:从Eclipse IDE中删除项目,然后重新导入,然后检查上述解决方案。

如果你想解决这个问题,那么你必须把Android SDK1.6换成Android 2.2。之后,清理项目,然后构建并运行。然后您将看到您的应用程序正在运行。

我使用adt7和其他修复没有工作(但我仍然做了他们)。

然后我复制了proguard.cfg从另一个项目,并简单地粘贴到旧的ADT项目文件夹。哇,成功了。

我的问题是由ADT版本12.0和ProGuard集成引起的。 这个错误有很好的文档,解决方案也在文档中

答案在这里

ProGuard命令行

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