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

2022-09-02 20:01:22

我有2个应用程序版本 - 专业版和精简版。它们都已经在v1.01市场上销售。我正在尝试为两者发布v1.1。此更新包括SwawrmConnect集成,以便使用其全球排行榜。

我应该首先说我知道我没有正确维护我的代码。我有2个完全独立的应用程序,它们可能共享90%的代码。我单独维护它们,因为经过一周或2或3周未能弄清楚如何做一个库和共享代码,我放弃了,只是这样做。

SwarmConnect是我使用过的第一个jar,必须为两个应用程序制作一个库(请参阅下面的文件结构屏幕截图)。

现在我的精简版正在工作,并准备发布。我现在正试图将我的专业版提升到需要发布的位置。我相当确定所有java / xml文件都是最新的和准备好的。当我在模拟器中运行pro版本时,我收到以下错误:

[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;

我尝试过的事情:

  • 清洁/重建
  • 更新日食
  • 删除文件箱和 gen 文件夹
  • 重新启动日食
  • 加上一些其他的东西

我的文件结构:

enter image description here

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

编辑:

以下是运行良好的精简版的文件结构。在模拟器上编译和运行。

enter image description here


答案 1

巧合的是,就在前天,我遇到了同样的问题。以下是我建议你做的事情。

首先,请确保您备份了当前驻留在“Android 依赖项”/“libs”文件夹中的所有 jar。

现在,让我们按照以下步骤首先修复精简版。

  1. 删除除 Eclipse 中项目资源管理器下的“Android 依赖项”文件夹之外的所有文件。jarandroid-support-v4.jar

  2. 同样,删除除 Eclipse 中项目资源管理器下的文件夹之外的所有 Jar 文件。android-support-v4.jarlibs

  3. 现在右键单击项目>选择属性>选择 Java 构建路径>选择添加外部 JAR。添加所有必要的文件(只需确保只添加一次特定文件)。jarjar

最后清理项目并生成它。现在,将相同的步骤序列应用于专业版。这应该可以做到。

UPDATE:- 如果您在完成所有这些操作后看到Eclipse在完成所有这些操作后出现一些编译时错误,那么您可能要做的就是通过按++执行必要的导入来修复这些编译时错误。CtrlShiftO

[我假设该项目的pro和lite版本在源代码依赖性等方面没有联系,我的意思是说基本上它们是完全独立的。

希望这有帮助。


答案 2

我强烈怀疑这是你的问题

  1. 右键单击您的项目
  2. 在“安卓”选项下查看
  3. 在下部窗格中,查看是否存在“Swarm Connect”
  4. 如果没有,请添加它(尽管我真的怀疑它已经在那里了)
  5. 从库目录中删除 Swarm.jar

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

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


推荐