在 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.6 而不是 1.5(我使用的当前版本)。
最佳答案
转到项目 » 属性 » Java 构建路径 » 库并删除除“Android X.Y”之外的所有内容(在我的情况下为 Android 1.5)。单击确定。转到项目»清理»清理下面选择的项目»选择您的项目并单击确定。应该可以的。
您的项目文件夹中的某处也可能有一个 JAR 文件(我已将 Admob JAR 文件复制到我的 src 文件夹中),然后将其添加为 Java 路径库。它不会出现在 Package Explorer 下,因此您不会注意到它,但它确实会被计算两次,从而导致可怕的 Dalvik 错误 1。
另一个可能的原因可能是包名冲突。假设你在这个包中有一个包com.abc.xyz
和一个名为A.java
的类,还有另一个库项目(添加到这个项目的依赖中)其中包含相同的 com.abc.xyz.A.java
,那么您将得到完全相同的错误。这意味着,您对同一文件 A.java
有多个引用,并且无法正确构建它。
在其他情况下,如果您不小心或故意在类路径文件中手动编辑/添加任何内容,则可能会发生这种情况。在某些情况下,我们可能会手动将 android.jar 路径添加到类路径文件以生成 java doc。删除该在javadoc生成的代码之后会正常工作。如果仍然出现任何问题,请也检查一下。
关于android - 外部 JAR 上的 "Conversion to Dalvik format failed with error 1",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2680827/