在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

其他回答

对于NewRelic用户:

如果你在你的应用程序中集成了newrelic jar,当newrelic版本过期时就会发生这种情况。

解决方案:

更新newrelic jar到最新版本。在eclipse上,只需右键单击项目并更新newrelic。或者你可以直接下载新版本。

如果你在应用中使用Leadbolt广告SDK,并将“通知广告”和“显示广告”结合在一起,你需要使用pubxappCom.jar而不是pubxapp.jar来发布通知广告,否则你就会出现这个错误!

编码快乐!

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

只需要清理项目

如果这行不通,试试其他的解决方案

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