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

意想不到的顶级异常: java.lang.IllegalArgumentException:已添加:Lorg/xmlpull/v1/XmlPullParser; .... 转换到Dalvik格式失败,错误1

此错误仅在向项目添加特定的外部JAR文件时出现。我花了很长时间寻找可能的解决方案,但没有一个可行。

我甚至尝试将Android 1.6而不是1.5(我目前使用的版本)。


当前回答

以前我有Android SDK构建工具18.1.1和Windows XP。然后我的应用程序就正常运行了。

但是我把我的系统更新到Windows 7,还把Android SDK构建工具更新到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天,然后我发现了这个链接,救了我的命,读了这篇文章后,我才知道这个问题是由于xercesimpll -2.9.1.jar与Android SDK构建工具到19。

所以我把它降级为Android SDK Build tools到18.1.1。我解决了这个问题。

我把我的答案贴在这里,这样如果有人遇到这个问题,他们就能解决它。

这让我很沮丧。希望能帮助别人。

其他回答

我在这里没有工作,我不得不改变我的proguard文件添加这一行:

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

它保留了任何不是我的包的代码。

当我试图导出我的项目时,我也遇到了同样的问题。控制台什么也看不见。

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

我也遇到过同样的问题,但这些方法都不起作用。 最后,我在控制台中看到错误是由于重复的类(一个在现有项目中,一个在添加的jar文件中):

java.lang.IllegalArgumentException: already added: package/MyClassclass;
[2011-01-19 14:54:05 - ...]: Dx1 error; aborting
[2011-01-19 14:54:05 - ...] Conversion to Dalvik format failed with error 1

因此,请检查您是否在项目中添加了带有重复类的jar。 如果是,请尝试移除其中一个。

这对我很管用。

每次出现这种错误时,简单地清理项目对我来说都很有效。

我知道这个问题已经有答案了,但这是我的解决方案:

我的Android项目来自一个Subversion存储库,我刚刚做了Checkout as a New project。我必须手动将我的库(Android和Java)添加到构建路径,否则它不会让我编译。然后我就会得到上面的错误。

我必须创建一个新的Android项目,然后手动复制更改。