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

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

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

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


当前回答

Windows 7解决方案:

确认该问题是由文件中的ProGuard命令行导致的 [Android SDK安装目录]\tools\proguard\bin\proguard.bat

编辑下面这行就可以解决问题了:

call %java_exe% -jar "%PROGUARD_HOME%"\lib\proguard.jar %*

to

call %java_exe% -jar "%PROGUARD_HOME%"\lib\proguard.jar %1 %2 %3 %4 %5 %6 %7 %8 %9

其他回答

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

每种方法我都试过了,但都没用。

有趣的是,如果我们使用proguard导出android应用程序,我们会得到“转换为dalvik格式失败,错误1”的错误,但如果我们在导出时不使用proguard,那么APK就成功创建了。

最后,我们的android项目中有一个jar的.class文件大小超过1.5 MB。它的大小导致了这个问题。我们把那个班分成许多小班,问题就解决了。

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

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

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

我使用的是安卓1.6,有一个外部JAR文件。对我有用的是删除所有库,右键单击项目并选择Android Tools -> *Fix项目属性(添加回Android 1.6),然后添加回外部JAR文件。

我知道这个问题已经有答案了,但这是我的解决方案:

我的Android项目来自一个Subversion存储库,我刚刚做了Checkout as a New project。我必须手动将我的库(Android和Java)添加到构建路径,否则它不会让我编译。然后我就会得到上面的错误。

我必须创建一个新的Android项目,然后手动复制更改。