在外部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个回答

2

当我添加了不同版本的相同jar文件时,我也遇到了这个问题,我只需删除旧版jar并清理项目,就可以让它正常工作。


2
在我的情况下,问题是在2011年3月更新Eclipse和ADT之后出现的。在我的项目中,我使用了一个JAR文件,这个文件会导致重建问题,而以前的解决方案都不起作用。我花了几天时间尝试所有的方法,搜索了很多内容,但都没有满意的解决方案。显然,.jar文件有一个双重引用。
最终,我:
  1. 删除了库中的任何引用,
  2. 从应用程序中删除了物理文件。
  3. 使用“添加外部JAR”获取位于项目外部不同目录中的.jar文件
  4. 执行项目“清理”,
  5. 使用(ctrl)+(shift)+O更新调用该jar的模块的引用
然后它终于编译成功了。

2

这个错误是由以下原因引起的:

  1. 有多个JAR文件。
  2. 如果JAR文件具有相似的类文件,则无法解析.dx格式。

解决方案:

  1. 制作并选择适当的JAR文件。
  2. 获取最新版本。

2

我正在使用ADT 7版本,其他修复方法都没有起作用(但我还是尝试了)。

然后我从另一个项目中复制了proguard.cfg文件,只需将其粘贴到旧的ADT项目文件夹中。然后,哇啦,它就起作用了。


1

对于NewRelic用户:

如果您在应用程序中集成了newrelic jar,当newrelic版本过时时会出现这种情况。

解决方案:

  • 将newrelic jar更新到最新版本。在eclipse中,只需右键单击项目并更新newrelic即可。或者您可以直接下载新版本。

1
我遇到了同样的错误,尝试了上面的所有方法,但都没有帮助我。
我的项目附加到GIT源代码控制系统中,我意识到在导出到Android应用程序时有一些与GIT相关的任务。然后,我将所有更改提交到GIT存储库中,错误消失了。
因此,如果您正在使用GIT进行源代码控制,并且上述方法都无法帮助您,请尝试将所有更改提交到GIT存储库(并最终推送到上游),然后再次尝试导出。

那帮了我,谢谢!不幸的是,似乎没有通用解决方案来解决那个错误。 - Lukas

1

这通常发生在我长时间运行eclipse或成功构建签名apk后。

根据我的经验,修复它只需要重新启动eclipse


是的,对我来说,这似乎也是唯一的解决方案。我尝试了其他答案中提出的许多建议,但似乎都没有起作用。通常在你仍在工作时已经将项目“运行为”、“Android 应用程序”,然后导出它之后才会发生这种情况。重启 Eclipse 然后立即导出对我有用! - Larphoid

1
在我的情况下,从USB中拔出手机就足以解决此错误。

1
只需要执行 Project > Clean 就可以了。

1

我曾经遇到过同样的问题,当我尝试导出我的项目时,在控制台上没有任何信息。

对我来说,解决方案是将proguard升级到最新版本,希望这能帮助到其他人。


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