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

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

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

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


当前回答

我个人通过手动编辑项目设法解决了这个问题。属性文件。

它是什么:

target=android-16
android.library.reference.1=..\\..\\github\\ActionBarSherlock\\library
android.library.reference.2=../../github/android-numberpicker/library

我把它改成这样问题就解决了

target=android-16
android.library.reference.1=../../github/ActionBarSherlock/library
android.library.reference.2=../../github/android-numberpicker/library

使用“修复项目属性”工具未自动修复此文件。

其他回答

转到项目,然后取消勾选“自动构建”。然后尝试导出项目,错误就消失了。

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

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

以前提出的解决方案对我都不起作用。以我为例,当我从引用库源代码文件夹切换到使用库JAR文件时,问题发生了。 最初,在Android应用程序项目属性\ Android页面\ library部分下列出了一个Android库项目,该库也在项目资源管理器树中作为库源目录的链接进行比较。

首先,我只是从项目树中删除了目录链接,并将JAR库添加到构建路径中,但这导致了异常。

正确的过程是(在更改回构建路径并将引用放回库源代码之后):

通过移除应用程序项目属性\ Android页面中的引用,正确地删除库源目录链接 像往常一样将库JAR添加到应用程序项目构建路径。

下面是另一个场景和解决方案:

如果您最近在更新Eclipse ADT后遇到这个问题:

在你的应用项目中,检查任何指向你的库项目的链接源文件夹(它们的名称以“LibraryName_src”的形式存在)。 选择所有这些项目,右键单击,选择“构建路径”->“从构建路径中删除”。 选择“也从项目中取消该文件夹的链接”,然后单击“是”。 清理、重新构建和重新部署项目。

原因似乎是ADT以前的一些版本将库项目源文件夹链接到“子”项目,而当前ADT/Dex组合不再与该解决方案兼容。

编辑:这一点在Android开发博客的一篇文章中得到了证实,特别是这篇文章——见第8段。