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

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

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

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


当前回答

我清理了我的主应用程序项目和它使用的Android库项目。解决问题

其他回答

我也遇到过同样的问题,但这些方法都不起作用。 最后,我在控制台中看到错误是由于重复的类(一个在现有项目中,一个在添加的jar文件中):

java.lang.IllegalArgumentException: already added: package/MyClassclass;
[2011-01-19 14:54:05 - ...]: Dx1 error; aborting
[2011-01-19 14:54:05 - ...] Conversion to Dalvik format failed with error 1

因此,请检查您是否在项目中添加了带有重复类的jar。 如果是,请尝试移除其中一个。

这对我很管用。

今天我自己也遇到了这个问题。清理和重建并没有解决问题。删除和重新导入项目也没有帮助。

我最终追踪到我的.class文件中的一个坏添加。我认为这是由插件工具添加的,当我试图解决另一个问题时,删除它摆脱了“转换到Dalvik格式失败,错误1”的构建错误:

<classpathentry kind="lib" path="C:/dev/repository/android-sdk-windows/platforms/android-3/android.jar">
    <attributes>
        <attribute name="javadoc_location" value="file:/C:/dev/repository/android-sdk-windows/docs/reference"/>
    </attributes>
    <accessrules>
        <accessrule kind="nonaccessible" pattern="com/android/internal/**"/>
    </accessrules>

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

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

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

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

通常对我来说,清理项目并不能解决这个问题。

但是在Eclipse中关闭项目,然后重新打开它似乎可以修复这些情况……

我的问题是由ADT版本12.0和ProGuard集成引起的。 这个错误有很好的文档,解决方案也在文档中

答案在这里

ProGuard命令行