多个dex文件 – 转换为Dalvik格式失败 – 无法执行dex

我有2个应用程序版本 – 专业版和精简版。 他们都已经在v1.01上市了。 我正试图释放v1.1。 此更新包括SwawrmConnect集成,以便使用其全球排行榜。

我应该开始说我知道我没有正确地维护我的代码。 我有2个完全独立的应用程序,并分享他们的代码可能90%。 我把它们分开维护,因为在一个星期或者两三年没有搞清楚如何做图书馆和分享代码之后,我放弃了,就这样去了。

SwarmConnect是我已经使用的第一个jar,并且必须为两个应用程序创build一个库(请参阅下面的文件结构的屏幕截图)。

现在我的精简版正在工作,并准备好发布。 我现在正试图让我的专业版本到需要发布的地方。 我相当肯定所有的java / xml文件是最新的,准备好了。 当我去模拟器中运行专业版时,出现以下错误:

[2013-04-18 11:24:41 - Dex Loader] Unable to execute dex: Multiple dex files define Lcom/swarmconnect/loopj/android/http/AsyncHttpResponseHandler; [2013-04-18 11:24:41 - BibleTriviaPro] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lcom/swarmconnect/loopj/android/http/AsyncHttpResponseHandler; 

我试过的东西:

  • 清洁/重build
  • 更新Eclipse
  • 删除bin和gen文件夹
  • 重新启动Eclipse
  • 加上一些其他的东西

我的文件结构:

在这里输入图像说明

问题可能是我想使用SwarmConnect作为2个项目(精简版和专业版)的库?

编辑:

以下是精简版的精简版文件结构。 编译并在仿真器上运行。

在这里输入图像说明

Solutions Collecting From Web of "多个dex文件 – 转换为Dalvik格式失败 – 无法执行dex"

巧合的是,我前天碰到了同样的问题。 这是我build议你做的。

首先确保你有一个目前驻留在“Android Dependencies”/“libs”文件夹中的所有jar的备份。

现在,请按照以下步骤先修复lite版本。

  1. 从Eclipse的Project Explorer下的“Android Dependencies”文件夹中删除除android-support-v4.jar之外的所有jar文件。

  2. 同样,从Eclipse的Project Explorer下的libs文件夹中删除除android-support-v4.jar之外的所有Jar文件。

  3. 现在右键单击您的项目 – >select属性 – >selectJava构buildpath – >select添加外部JAR。 添加所有必需的jar文件(只要确保只添加一个特定的jar文件一次)。

最后清理项目并构build它。 现在将相同的步骤序列应用于专业版。 这应该做到这一点。

更新: – 如果你看到Eclipse完成所有这一切之后看到一些编译时错误,那么你只需要通过按Ctrl + Shift + O进行必要的导入来修正那些编译时错误。

[我认为项目的专业版和精简版在源代码依赖性等方面没有联系。我的意思是说,它们基本上是完全独立的。]

希望这可以帮助。

我强烈怀疑这是你的问题

  1. 右键单击您的项目
  2. 查看“Android”选项
  3. 在下面的窗格中看看是否存在“Swarm Connect”
  4. 如果没有,加上它(虽然我真的怀疑它已经在那里)
  5. 从libs目录中删除Swarm.jar

原因是:在Eclipse中将一个库项目添加到Android项目中时,它不会显示在您的libs目录中。 我实际上试图添加.jar文件到一个项目,并被告知这是错误的方法(至less在API 14,我认为)。

我的猜测是,在你的“非专业版”你没有链接它的项目选项,因此它仍然编译正确。 不过,您应该按照我刚刚描述的方式将其链接,以避免库在尝试访问自己的资源时出现问题。

上面的解决scheme并不适合我,我只需要在libs文件夹外部添加jar文件,并在订单和导出选项卡下取消选中Android专用库。

  right click-- java build path-- order and export tab ->Uncheck Android private libraries and add jars in the libs folder externally. 

执行上述步骤。 不知道这是为什么发生。

我尝试了@Sriram的答案。 它没有工作。

然后,我不得不从项目 – >属性 – > Java生成path – >库位置,并添加实际jar(我需要android-support-v4.jar和android-support-v13.jar)到libs文件夹我的项目。 然后它的工作:

最终结构

(请注意,没有“引用的库”文件夹)

我得到了这个错误,因为我使用了整个Android开发工具包安装程序(Eclipse + SDK,date2/6/2013)。 我能够摆脱它的唯一方法是卸载所有这些,并从eclipse.org单独安装Eclipse For Java开发人员,以及仅从Android站点安装Android SDK。 该工具包附带的Eclipse提供了一些关于从何处引入库的有趣想法,更不用说c ++和gdb支持的残余部分了。