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

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

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

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


当前回答

另一个机器人巫术的案例 如果其他方法都不管用,那就试试 将清单中的versionCode和versionName增加1。

这对我很管用。

其他回答

我解决了这个问题。

这是一个JAR文件冲突。

我的构建路径上似乎有两个包含相同包和类的JAR文件。

jar和android_maps_lib-1.0.2

从一个JAR文件中删除这个包就解决了这个问题。

进入项目»属性»Java构建路径»库,删除除“Android X.Y”(在我的情况下是Android 1.5)之外的所有内容。单击OK。转到项目»清洁»下面所选的清洁项目»选择您的项目并单击确定。这应该有用。

也有可能你在你的项目文件夹中有一个JAR文件(我已经把Admob JAR文件复制到我的src文件夹中),然后把它添加为Java路径库。它不会显示在包资源管理器下,所以你不会注意到它,但它会被计算两次,导致可怕的Dalvik错误1。

另一个可能的原因是包名冲突。假设您有一个包com.abc.xyz,在这个包中有一个名为a .java的类,另一个库项目(添加到这个项目的依赖项中)包含相同的com.abc.xyz. a .java,那么您将得到完全相同的错误。这意味着,您对同一个文件A.java有多个引用,不能正确地构建它。

在其他情况下,如果你不小心或故意在类路径文件中手动编辑/添加任何东西,这可能会发生。在某些情况下,我们可以手动将android.jar路径添加到类路径文件中以生成java doc。删除后,javadoc生成的代码将工作正常。如果还有问题,也请检查一下。

我使用的是安卓1.6,有一个外部JAR文件。对我有用的是删除所有库,右键单击项目并选择Android Tools -> *Fix项目属性(添加回Android 1.6),然后添加回外部JAR文件。

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

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

如果你想解决这个问题,那么你必须把Android SDK1.6换成Android 2.2。之后,清理项目,然后构建并运行。然后您将看到您的应用程序正在运行。