在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(我目前使用的版本)。
当前回答
我也有同样的问题。当我检查时,我看到有两个类具有相同的名称,每个类在我添加的外部jar文件中。然后我必须删除一个jar文件。幸运的是,我得到了另一个jar文件1我已经删除。
其他回答
每种方法我都试过了,但都没用。
有趣的是,如果我们使用proguard导出android应用程序,我们会得到“转换为dalvik格式失败,错误1”的错误,但如果我们在导出时不使用proguard,那么APK就成功创建了。
最后,我们的android项目中有一个jar的.class文件大小超过1.5 MB。它的大小导致了这个问题。我们把那个班分成许多小班,问题就解决了。
今天我自己也遇到了这个问题。清理和重建并没有解决问题。删除和重新导入项目也没有帮助。
我最终追踪到我的.class文件中的一个坏添加。我认为这是由插件工具添加的,当我试图解决另一个问题时,删除它摆脱了“转换到Dalvik格式失败,错误1”的构建错误:
<classpathentry kind="lib" path="C:/dev/repository/android-sdk-windows/platforms/android-3/android.jar">
<attributes>
<attribute name="javadoc_location" value="file:/C:/dev/repository/android-sdk-windows/docs/reference"/>
</attributes>
<accessrules>
<accessrule kind="nonaccessible" pattern="com/android/internal/**"/>
</accessrules>
对于仍然有这个问题的其他人,他们尝试了上面的答案但仍然得到错误(这是我的情况),那么我的解决方案是从Eclipse中删除项目并重新导入它。
这使得Android库再次添加到我的引用库中,所以现在我有两个Android JAR文件引用,因此我删除了其中一个,现在它编译良好。
解决方案:从Eclipse IDE中删除项目,然后重新导入,然后检查上述解决方案。
我解决了这个问题。
这是一个JAR文件冲突。
我的构建路径上似乎有两个包含相同包和类的JAR文件。
jar和android_maps_lib-1.0.2
从一个JAR文件中删除这个包就解决了这个问题。
对于NewRelic用户:
如果你在你的应用程序中集成了newrelic jar,当newrelic版本过期时就会发生这种情况。
解决方案:
更新newrelic jar到最新版本。在eclipse上,只需右键单击项目并更新newrelic。或者你可以直接下载新版本。