我有 2 个应用版本 - 专业版和精简版。它们都已在 v1.01 上市。我正在尝试为两者发布 v1.1。此更新包括 SwawrmConnect 集成,以便使用其全局排行榜。
我应该首先说我知道我没有正确维护我的代码。我有 2 个完全独立的应用程序,它们共享大约 90% 的代码。我将它们分开维护,因为在一周或 2 或 3 周未能弄清楚如何做一个库和共享代码之后,我放弃了,就这样去做了。
SwarmConnect 是我使用的第一个 jar,必须为两个应用程序创建一个库(参见下面的文件结构截图)。
现在我的精简版正在运行并准备发布。我现在正试图将我的专业版放到需要发布的位置。我相当肯定所有 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;
我尝试过的事情:
- 清理/重建
- 更新 Eclipse
- 删除 bin 和 gen 文件夹
- 重启 Eclipse
- 加上其他一些东西
我的文件结构:
问题可能是我试图将 SwarmConnect 用作 2 个项目(精简版和专业版)的库吗?
编辑:
以下是运行良好的 lite 版本的文件结构。在模拟器上编译和运行。
最佳答案
巧合的是,前天我遇到了同样的问题。这是我建议您执行的操作。
首先要确保您备份了当前位于“Android Dependencies”/“libs”文件夹中的所有 jar。
现在,让我们先按照以下步骤修复精简版。
从 Eclipse 中 Project Explorer 下的“Android Dependencies”文件夹中删除除
android-support-v4.jar
之外的所有jar
文件。类似地从 Eclipse 中 Project Explorer 下的
libs
文件夹中删除除android-support-v4.jar
之外的所有 Jar 文件。现在右键单击您的项目-> 选择属性-> 选择 Java 构建路径-> 选择添加外部 JAR。添加所有必需的
jar
文件(只需确保只添加一次特定的jar
文件)。
最后清理项目并构建它。现在将相同的步骤序列应用于专业版。 应该这样做。
更新:- 如果您在完成所有这些操作后看到 Eclipse mock 一些编译时错误,您可能需要做的就是通过按 Ctrl 进行必要的导入来修复这些编译时错误+Shift+O.
[我假设项目的 pro 和 lite 版本在源依赖等方面没有联系。我的意思是说它们基本上是完全独立的。]
希望这会有所帮助。
关于java - 多个 dex 文件 - 转换为 Dalvik 格式失败 - 无法执行 dex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16087341/