外部JAR上的“转换为Dalvik格式失败,出现错误1”

在我的Eclipse的Eclipse应用程序中,出现以下错误。

意外的顶级例外:
java.lang.IllegalArgumentException:已经添加:Lorg / xmlpull / v1 / XmlPullParser;
....
转换为Dalvik格式失败,错误1

只有当我将特定的外部JAR文件添加到我的项目时才会出现此错误。 我花了很长时间寻找可能的解决方案,但没有任何可行的解决方案。 我甚至试图更改为Android 1.6而不是1.5(我使用的当前版本)。


转到项目»属性»Java构建路径»库,并删除所有除“Android XY”(在我的情况下Android 1.5)。 单击确定。 转到项目»清洁»清洁下面选择的项目»选择您的项目,然后单击确定。 这应该工作。

您也可能在项目文件夹中有一个JAR文件(我已将Admob JAR文件复制到我的src文件夹中),然后将其添加为Java Path Library。 它不会在Package Explorer下显示,所以您不会注意到它,但它会计算两次,导致可怕的Dalvik错误1。

另一个可能的原因可能是包名冲突。 假设你在这个包内有一个包com.abc.xyz和一个名为A.java的类,另一个包含相同的com.abc.xyz.A.java库项目(它被添加到这个项目的依赖项中)那么你会得到完全相同的错误。 这意味着,您有多个对同一个文件A.java引用,并且无法正确构建它。

在其他方面,如果您不小心或故意手动编辑/添加类路径文件中的任何东西,可能会发生这种情况。在某些情况下,我们可能会手动将android.jar路径添加到classpath文件以生成java doc.On,在javadoc生成后删除该路径代码将正常工作。请检查这一点,如果任何一个仍然发生。


我解决了这个问题。

这是一个JAR文件冲突。

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

smack.jarandroid_maps_lib-1.0.2

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


Windows 7解决方案:

确认问题是由文件中的ProGuard命令行引起的
[Android SDK安装目录] tools proguard bin proguard.bat

编辑以下行将解决问题:

call %java_exe% -jar "%PROGUARD_HOME%"libproguard.jar %*

call %java_exe% -jar "%PROGUARD_HOME%"libproguard.jar %1 %2 %3 %4 %5 %6 %7 %8 %9
链接地址: http://www.djcxy.com/p/12947.html

上一篇: "Conversion to Dalvik format failed with error 1" on external JAR

下一篇: Standard Android Button with a different color