在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(我目前使用的版本)。
当前回答
在我的案例中,这个问题起源于2011年3月更新Eclipse和ADT之后。在我的项目中,我正在使用一个JAR,它正在产生问题来重建,以前的解决方案都不起作用。我花了好几天的时间,到处找都没有满意的答案。显然,.jar文件有双重引用。
最后我:
从库中删除了所有引用, 删除应用程序中的物理文件表单。 使用“添加外部jar”获得。jar(位于项目外部的另一个目录) 执行项目“清洁”, 用(ctrl)+(shift)+O将引用更新到调用jar的模块中
它终于编译成功了。
其他回答
这些答案对我都没用。我的问题是由JUnit和hamcrest引起的。参见java.lang.IllegalArgumentException: already added: Lorg/hamcrest/BaseDescription;转换到Dalvik格式失败,错误1
通常,当构建路径中存在不必要的JAR文件时,似乎就会出现这个问题。
我在开发IntelliJ IDEA时遇到了这个问题。对我来说,这是因为我添加了JUnit和Mockito库,它们在运行时被编译。这需要在模块属性中设置为“testing”。
我在使用Eclipse neon和JDK 1.8时遇到了这个问题。在换成JDK 1.7之后,这个问题就解决了。
在我的案例中,问题在于OpenFeint API项目。我添加了OpenFeint作为库项目:
.
它也被添加到构建路径中,ADT tools 16在此场景中给出错误。
右键单击你的项目,单击构建路径,配置构建路径,然后看到图像,并从这里删除你的项目OpenFeint,一切都完成了:)
上面列出的解决方案没有一个对我有效。
这就是我遇到的问题:
I added the jSoup external JAR file to my project's path by first putting it in a source folder called "libs", and then right clicking on it, Build Path -> add to build path. This threw the Dalvik conversion error. It said I had "already included" a class from that JAR file. I looked around the project's directory and found that the place where it was "already included" was in fact the bin directory. I deleted the JAR file from the bin directory and refreshed the project in Eclipse and the error went away!