无法执行dex:多个dex文件定义Lorg / simpleframework / xml / Attribute

时间:2014-08-21 05:54:24

标签: android dex

我在一个应用程序中实现C2Call库用于拨号调用,而C2Call库有很多jar文件,simple-xml-2.6.7.jar是C2Call库的一部分。 simple-xml-2.6.7.jar在编译时给我一个错误:

  

[2014-08-21 11:09:56 - Dex Loader]无法执行dex:多个dex文件定义Lorg / simpleframework / xml / Attribute;
  [2014-08-21 11:09:56]转换为Dalvik格式失败:无法执行dex:多个dex文件定义Lorg / simpleframework / xml / Attribute;

我已经做了很多冲浪来解决这个问题,但我找不到解决方案来解决这个问题。

我希望,你可以解决这个问题。

感谢。

3 个答案:

答案 0 :(得分:1)

如果要在两个不同的jar中导入相同的库,则会出现此问题。您需要仔细检查所有罐子,并尝试找出导入相同库的罐子。如果您有源代码,那么您可以轻松地再次构建jar而无需添加库。

要尝试的另一件事是将其分解为多个dex文件。请从这里阅读

http://android-developers.blogspot.co.il/2011/07/custom-class-loading-in-dalvik.html

"大型应用程序可以包含超过64K的方法引用,这是dex文件中支持的最大数量。为了解决这个限制,开发人员可以将部分程序划分为多个辅助dex文件,并在运行时加载它们。"

我认为你有超过64k的方法引用,这导致了问题。如果它对您有用,请告诉我

答案 1 :(得分:1)

当您尝试在单个.apk文件中导出两次相同的jar文件时会发生这种情况。 消除此错误的简单方法

检查你的: - Android私人图书馆 参考图书馆 Android依赖项

并确保没有重复的jar文件。如果重复任何jar文件,则在项目的libs文件夹中找到它并删除它然后刷新项目。

如果没有解决,请尝试: -

右键单击项目>属性> Java构建路径>订单和导出>取消选中android私有库。

答案 2 :(得分:0)

我将MobFox simple-xml-2.7.1.jar文件添加到Android lib文件中。当我生成apk时我有这个错误。重新生成apk后删除simple-xml-2.7.1.jar。我通过这种方式解决了我的问题。