在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文件。 如果JAR文件具有类似的类文件,则不能解析.dx格式。
解决方案:
制作并选择适当的JAR文件。 买最新的。
其他回答
以前提出的解决方案对我都不起作用。以我为例,当我从引用库源代码文件夹切换到使用库JAR文件时,问题发生了。 最初,在Android应用程序项目属性\ Android页面\ library部分下列出了一个Android库项目,该库也在项目资源管理器树中作为库源目录的链接进行比较。
首先,我只是从项目树中删除了目录链接,并将JAR库添加到构建路径中,但这导致了异常。
正确的过程是(在更改回构建路径并将引用放回库源代码之后):
通过移除应用程序项目属性\ Android页面中的引用,正确地删除库源目录链接 像往常一样将库JAR添加到应用程序项目构建路径。
对我来说,问题在于我设置了错误的编译器遵从级别(1.8而不是1.7)。
这个答案解决了问题:
在Project SDK部分,当你添加Android SDK时,你应该 提供Java SDK和所有我的Android SDK使用Java 8作为SDK,所以它 创建版本错误的类文件,即使项目 等级是1.7(我不知道为什么,我以为一切都被选中了 按项目级别划分)。现在我改变了SDK (java版本“1.x.0”) 部分)。
我在其类路径中包含protobuf lite (Protocol Buffers by谷歌)的项目中有完全相同的错误。我想原因是我的类路径和项目文件夹中的protobuf-lite.jar是在我以前的机器中构建的。当我下载Maven并重新构建protobuf-lite.jar文件,然后将其作为用户库重新添加到我的项目中时,一切都很正常。
通常对我来说,清理项目并不能解决这个问题。
但是在Eclipse中关闭项目,然后重新打开它似乎可以修复这些情况……
我遇到了这个问题,但我的解决办法是双重的。 1)。我不得不在项目->属性-> Android下添加一个Android目标版本。 2)。我没有所有的“第三方插件”。点击AVD SDK管理器下的可用软件包->第三方附加组件->谷歌公司。我下载了所有的sdk,这解决了我的问题。