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

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

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

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


当前回答

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

这对我很管用。

其他回答

只有>清洁项目对我有用。

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

每种方法我都试过了,但都没用。

有趣的是,如果我们使用proguard导出android应用程序,我们会得到“转换为dalvik格式失败,错误1”的错误,但如果我们在导出时不使用proguard,那么APK就成功创建了。

最后,我们的android项目中有一个jar的.class文件大小超过1.5 MB。它的大小导致了这个问题。我们把那个班分成许多小班,问题就解决了。

我也遇到过同样的问题,但这些方法都不起作用。 最后,我在控制台中看到错误是由于重复的类(一个在现有项目中,一个在添加的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。 如果是,请尝试移除其中一个。

这对我很管用。

这里的答案对我的情况没有帮助。

对我来说,问题是mvn eclipse:eclipse正在生成一个类路径条目,这是一个Android库项目的项目引用,然而,它没有显示在eclipse构建路径设置!这意味着库类在dexer中结束了两次,一次来自隐藏的项目引用,一次来自链接库JAR。

我必须用文本编辑器打开.classpath并手动删除projects元素。这解决了问题。