在Eclipse中的Android应用程序中,我得到了以下错误。
意想不到的顶级异常: java.lang.IllegalArgumentException:已添加:Lorg/xmlpull/v1/XmlPullParser; .... 转换到Dalvik格式失败,错误1
此错误仅在向项目添加特定的外部JAR文件时出现。我花了很长时间寻找可能的解决方案,但没有一个可行。
我甚至尝试将Android 1.6而不是1.5(我目前使用的版本)。
在Eclipse中的Android应用程序中,我得到了以下错误。
意想不到的顶级异常: java.lang.IllegalArgumentException:已添加:Lorg/xmlpull/v1/XmlPullParser; .... 转换到Dalvik格式失败,错误1
此错误仅在向项目添加特定的外部JAR文件时出现。我花了很长时间寻找可能的解决方案,但没有一个可行。
我甚至尝试将Android 1.6而不是1.5(我目前使用的版本)。
当前回答
这个答案基本上是很多人想说的,但很多人可能不理解。所以…
“另一个原因可能是,如果您有一个JAR文件位于 您的项目文件夹,然后将其添加为Java路径库。它 不会显示在包资源管理器下,所以你不会注意到它,但是它 会被计算两次,导致可怕的Dalvik错误。 12年1月2日6点23分拉什米。B
意义:
如果你的lib文件夹中有这两个库(.jar):
然后这两个文件夹也被添加到你的构建路径:
意味着它们被计算了两次,从而给出了错误!
解决方案:
从你的构建路径中删除这些库,并删除“Android Dependencies”: 清洁所有项目 导出您的项目 享受吧!:)
其他回答
这里的答案对我也没用。
但是,我可以通过从除主应用程序外的所有附加库中删除Android类路径容器(在我的情况下是Android 4.4)来修复这个错误,然后导出APK。 库项目将不再编译,但jar文件仍然存在,APK正在部署。我不知道这种行为的原因是什么。
另一个机器人巫术的案例 如果其他方法都不管用,那就试试 将清单中的versionCode和versionName增加1。
这对我很管用。
通常,当构建路径中存在不必要的JAR文件时,似乎就会出现这个问题。
我在开发IntelliJ IDEA时遇到了这个问题。对我来说,这是因为我添加了JUnit和Mockito库,它们在运行时被编译。这需要在模块属性中设置为“testing”。
对于NewRelic用户:
如果你在你的应用程序中集成了newrelic jar,当newrelic版本过期时就会发生这种情况。
解决方案:
更新newrelic jar到最新版本。在eclipse上,只需右键单击项目并更新newrelic。或者你可以直接下载新版本。
我正在使用ADT r14,当我尝试添加任何库项目时,我得到了这个错误。对我来说,有效的方法就是将ADT更新到最新版本。它立刻解决了问题。我尝试了几乎所有的工作给stackoverflow,但没有其他真正为我工作。