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

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

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

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


当前回答

对于我来说,在我的构建路径中出现了一个额外的JAR引用。我把这个删了,现在可以用了。

其他回答

我也有同样的问题。当我检查时,我看到有两个类具有相同的名称,每个类在我添加的外部jar文件中。然后我必须删除一个jar文件。幸运的是,我得到了另一个jar文件1我已经删除。

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

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

它是什么:

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

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

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

我最终追踪到我的.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>

在大多数情况下,这个问题是由Proguard的bug或损坏版本引起的,因为一些奇怪的原因,Proguard通常会从官方的Android SDK管理器安装

请不要编辑Proguard的bat文件,以免出现后续问题,如果遇到此问题,请到官方网站下载最新稳定版本的Proguard,并替换所有的Proguard文件

android-sdk\tools\proguard

使用从下载的存档中提取的最新保护文件。

没有必要删除所有外部库的依赖关系,如果开发人员添加一个库到他的项目中,最有可能的是这个库是需要的。