18

我有 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 个项目(精简版和专业版)的库吗?

编辑:

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

在此处输入图像描述

4

5 回答 5

37

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

首先,确保您备份了当前位于“Android Dependencies”/“libs”文件夹中的所有 jar。

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

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

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

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

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

更新:- 如果您在完成所有这些操作后看到 Eclipse 嘲笑一些编译时错误,您可能需要做的就是通过按Ctrl++Shift进行必要的导入来修复这些编译时错误O

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

希望这可以帮助。

于 2013-04-18T16:20:41.810 回答
2

我强烈怀疑这是你的问题

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

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

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

于 2013-04-18T16:29:36.710 回答
2

上面的解决方案对我不起作用,我所要做的就是在外部添加 libs 文件夹中的 jar,并在 order 和 export 选项卡下取消选中 Android private libraries。

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

执行上述步骤。不知道为什么会这样。

于 2014-12-08T14:25:17.660 回答
0

我在上面尝试了@Sriram 的答案。它没有用。

然后我必须从 Project->Properties->Java Build Path->Libraries 位置删除库,并将实际的 jar(我需要 android-support-v4.jar 和 android-support-v13.jar)添加到 libs 文件夹中我的项目。然后它起作用了:

最终结构

(请注意,没有“Referenced Libraries”文件夹)

于 2014-07-11T19:04:20.840 回答
-1

我收到此错误是因为我使用了整个 Android Development Kit 安装程序(Eclipse plus SDK,日期为 2013 年 2 月 6 日)。我能够摆脱它的唯一方法是卸载所有这些,并从 eclipse.org 单独安装 Eclipse For Java Developers,并仅从 Android 站点安装 Android SDK。工具包附带的 Eclipse 有一些有趣的想法,关于从哪里包含库,更不用说对 c++ 和 gdb 支持的残留部分了。

于 2013-05-22T21:52:33.693 回答