在外部JAR包中,转换为Dalvik格式失败,错误代码为1。

924

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

UNEXPECTED TOP-LEVEL EXCEPTION:
java.lang.IllegalArgumentException: already added: Lorg/xmlpull/v1/XmlPullParser;
....
Conversion to Dalvik format failed with error 1

只有当我将特定的外部JAR文件添加到我的项目中时,才会出现此错误。我尝试了很长时间寻找可能的解决方案,但都没有起作用。

我甚至尝试将Android版本从1.5更改为1.6,但问题仍未解决。


如果您在工作区中使用库项目,则此文章可能会帮助您解决此错误。 - Nguyen Minh Binh
4
我试过了,但是还是出现了同样的错误。最后我通过在Properties->JavaBuildPath->Projects中添加库并将其添加到库中来解决了这个问题。它被称为"必须添加到构建路径中的对象"。 - user407749
27
这个问题对我来说已经变得很残酷了。几乎让我想放弃安卓编码了。所有的解决方案都不适用于我。我只能不断地尝试导出,但都会失败并提示达尔维克错误1,最终才能成功。发布版本需要花费15-30分钟,这真是一场灾难。 - Anthony
如果您在一个工作区上使用两台计算机,并使用文件共享软件,则有时会将工作区->项目->bin->com文件夹复制为com 1、com 2。只需删除带有1或2的所有内容,清理您的项目,然后您就可以开始了。 - Ozan Atmar
71个回答

1

我可以说它们并不是固定的。我现在比以前更频繁地遇到这些问题,而且它们更加突出了。我现在后悔升级了。 - Norman

1

我按照这个答案中的步骤进行了操作,但仍然没有解决问题。我继续在网上搜索,发现如果在连接Android设备到电脑时尝试导出APK文件,则会出现此错误。

断开设备连接后,关闭项目,重新启动计算机,打开项目并清理项目,这三次都对我有用。


0

在这里,没有任何方法对我有效,我不得不更改我的Proguard文件并添加这行代码:

-keep class !mycode.** { *; }

这将保留任何不属于我的软件包的代码。


0

你好,之前我使用的是Android SDK Build tools 18.1.1Windows XP,我的应用程序可以正常运行。

但是我将系统升级到了Windows 7,并更新了Android SDK Build tools到19以获得最新的配置。

但是我的项目中有一个xercesImpl-2.9.1.jar文件,所以当我开始使用新的/更新的配置运行我的应用程序时,出现了以下问题:

Conversion to Dalvik format failed with error 1 while parsing org/apache/xerces/impl/xpath/regex/ParserForXMLSchema.class

我查看了所有与此问题相关的答案,但是无法解决。我苦恼了4天,然后找到了this链接,它拯救了我的生命。阅读后,我知道问题是由于Android SDK Build工具与xercesImpl-2.9.1.jar不兼容。

因此,我将其降级为Android SDK Build工具18.1.1。这样就解决了这个问题。

我在这里发布我的答案,以便如果有人遇到此问题,他们可以解决它。

这让我感到沮丧。希望能帮助其他人。


0

Google API 在依赖方面引起了这个问题。移除后它就可以正常工作了。


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

0

我曾经遇到过同样的问题。当我检查时,发现有两个类名相同的类,一个在我添加的每个外部jar文件中。然后我必须删除其中一个jar文件。幸运的是,我找到了另一个替代我删除的jar文件。


0

我刚刚安装了最新的eclipse,最新的API和最新的SDK和工具,但是多年后,这个错误并没有过时。我浪费了一天的时间来解决它。尝试了所有方法,都徒劳无功。因为这个消息非常通用,许多不同的问题都会引起它。所以,一些人指出的解决方案对其他人可能不起作用。

一个好的第一步是去窗口>首选项>Android>构建,然后取消选中“跳过打包和dexing...”。这样,当您构建而不仅仅是导出时,您将有更多关于特定错误的线索。

在我的情况下,我得到了一个“Dx不支持的类文件版本...”。我没有看到这个错误在这里报告。嗯,基于此,我发现我使用的一些旧的jar是用1.6编译的,而其他的则是用1.7编译的。所以我将默认的IDE编译器兼容级别更改为1.6(窗口>首选项>Java>编译器),并在完全清理和重建我拥有的每个依赖项之后,我终于可以生成我的APK。


0

又是一种安卓巫术,如果其他方法都不行,试着在清单文件中将versionCode和versionName增加1。

这对我有用。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接