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

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

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

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


当前回答

我也犯了同样的错误,我尝试了上面所有的方法,但都无济于事。

我的项目是挂在GIT源码管理系统上的,在导出到android应用的过程中,我发现有一些GIT相关的任务。然后我将所有更改提交到GIT存储库,错误消失了。

因此,如果您正在使用GIT进行源代码控制,而上述方法对您没有任何帮助,请尝试将所有更改提交到GIT存储库(并最终推到上游),然后再次尝试导出。

其他回答

我自己的解决方案,也是我今天在测试所有解决方案四个小时后发现的唯一解决方案,是以下提供的许多解决方案的组合:

从Eclipse中删除项目 从项目文件夹中删除\bin和\gen中的文件 将对库的引用删除到根项目文件夹的.classpath文件中 使用命令行重新启动Eclipse: Eclipse -clean 导入项目 右键单击项目-选择属性> Java Build Path > Libraries,删除除Android XX以外的所有内容。Y 最后清理项目,等待自动构建或构建它 启动,现在它工作了!至少对我来说……

我一次尝试了每一步,尝试了许多组合,但只有把所有的步骤同时进行才成功!我希望我不会再面对这种情况……

我遍历了这个答案中的步骤,仍然没有得到解决方案。我一直在网上搜索,发现如果你试图在Android设备连接到计算机时导出APK,就会得到这个错误。

断开我的设备,然后关闭项目,重新启动计算机,打开项目,然后清理它,这三次都发生了。

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

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

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

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

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

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

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

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

我解决了这个问题。

这是一个JAR文件冲突。

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

jar和android_maps_lib-1.0.2

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