在Eclipse中的Android应用程序中,我得到了以下错误。
意想不到的顶级异常: java.lang.IllegalArgumentException:已添加:Lorg/xmlpull/v1/XmlPullParser; .... 转换到Dalvik格式失败,错误1
此错误仅在向项目添加特定的外部JAR文件时出现。我花了很长时间寻找可能的解决方案,但没有一个可行。
我甚至尝试将Android 1.6而不是1.5(我目前使用的版本)。
在Eclipse中的Android应用程序中,我得到了以下错误。
意想不到的顶级异常: java.lang.IllegalArgumentException:已添加:Lorg/xmlpull/v1/XmlPullParser; .... 转换到Dalvik格式失败,错误1
此错误仅在向项目添加特定的外部JAR文件时出现。我花了很长时间寻找可能的解决方案,但没有一个可行。
我甚至尝试将Android 1.6而不是1.5(我目前使用的版本)。
当前回答
下面是另一个场景和解决方案:
如果您最近在更新Eclipse ADT后遇到这个问题:
在你的应用项目中,检查任何指向你的库项目的链接源文件夹(它们的名称以“LibraryName_src”的形式存在)。 选择所有这些项目,右键单击,选择“构建路径”->“从构建路径中删除”。 选择“也从项目中取消该文件夹的链接”,然后单击“是”。 清理、重新构建和重新部署项目。
原因似乎是ADT以前的一些版本将库项目源文件夹链接到“子”项目,而当前ADT/Dex组合不再与该解决方案兼容。
编辑:这一点在Android开发博客的一篇文章中得到了证实,特别是这篇文章——见第8段。
其他回答
我也有同样的问题。当我检查时,我看到有两个类具有相同的名称,每个类在我添加的外部jar文件中。然后我必须删除一个jar文件。幸运的是,我得到了另一个jar文件1我已经删除。
以上所有的解决方案都不适合我。我没有使用任何预编译的.jar。我使用的是LVL和Dalvik错误,所有这些都与市场许可库有关。
这个问题通过删除主项目并重新导入(从现有的资源中创建一个新项目)得到了解决。
我知道这个问题已经有答案了,但这是我的解决方案:
我的Android项目来自一个Subversion存储库,我刚刚做了Checkout as a New project。我必须手动将我的库(Android和Java)添加到构建路径,否则它不会让我编译。然后我就会得到上面的错误。
我必须创建一个新的Android项目,然后手动复制更改。
对于仍然有这个问题的其他人,他们尝试了上面的答案但仍然得到错误(这是我的情况),那么我的解决方案是从Eclipse中删除项目并重新导入它。
这使得Android库再次添加到我的引用库中,所以现在我有两个Android JAR文件引用,因此我删除了其中一个,现在它编译良好。
解决方案:从Eclipse IDE中删除项目,然后重新导入,然后检查上述解决方案。
在我的情况下,我有一个外部罐子添加。因此,我将外部jar位置移动到Project Prop中的android引用的顶部——>Java buildPath——>项目引用