外部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.jar
和android_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