我有2个应用程序版本 - 专业版和精简版。它们都已在v1.01上市。我试图为两者发布v1.1。此更新包括SwawrmConnect集成,以便使用其全局排行榜。
我应该首先说我知道我没有正确维护我的代码。我有2个完全独立的应用程序,可能共享90%的代码。我单独维护它们是因为经过一周或者2或3次未能弄清楚如何建立一个库并共享代码之后,我放弃了,就这样用它来了。
SwarmConnect是我使用的第一个jar,必须为两个应用程序创建一个库(请参阅下面的文件结构截图)。
现在我的Lite版本正在运行并准备发布。我现在正试图将我的专业版本发布到需要发布的位置。我相当确定所有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;
我尝试过的事情:
我的文件结构:
问题是我试图将SwarmConnect用作2个项目的库(精简版和专业版)吗?
编辑:
以下是完美运行的lite版本的文件结构。在模拟器上编译并运行。
答案 0 :(得分:37)
巧合的是,我前天遇到了同样的问题。这是我建议你做的。
首先要确保您拥有目前驻留在“Android Dependencies”/“libs”文件夹中的所有jar的备份。
现在,我们首先按照以下步骤修复lite版本。
从Eclipse中的Project Explorer下的“Android Dependencies”文件夹中删除除jar
以外的所有android-support-v4.jar
个文件。
同样从Eclipse中Project Explorer下的android-support-v4.jar
文件夹中删除除libs
之外的所有Jar文件。
现在右键点击你的项目 - >选择属性 - >选择Java Build Path->选择Add External JARs。添加所有必需的jar
文件(只需确保仅添加一个特定的jar
文件)。
最后清理项目并构建它。现在将相同的步骤序列应用于专业版。 应该这样做。
更新: - 如果您在完成所有这些操作后看到Eclipse发生了一些编译时错误,那么您可能需要做的就是通过按 Ctrl 执行必要的导入来修复这些编译时错误+ 移 + 0
[我假设项目的专业版和精简版之间在源依赖等方面没有联系。我的意思是基本上他们完全独立。]
希望这有帮助。
答案 1 :(得分:2)
我强烈怀疑这是你的问题
原因是:当您将库项目添加到Eclipse中的Android项目时,它不会显示在您的libs目录中。我实际上试图将.jar文件添加到项目中并被告知这是错误的方法(至少在API 14之前,我认为)。
我的猜测是,在您的“非专业”版本中,您没有将其链接到项目选项中,因此它仍然可以正确编译。尽管如此,您应该按照我刚才描述的方式链接它,以避免在库试图访问自己的资源时出现问题。
答案 2 :(得分:2)
上述解决方案对我没有用,我只需要在外部的libs文件夹中添加jar,并在订单和导出选项卡下取消选中Android私有库。
right click--
java build path--
order and export tab ->Uncheck Android private libraries
and add jars in the libs folder externally.
执行上述步骤。不知道为什么会这样。
答案 3 :(得分:0)
我试过@Sriram的上述答案。它没有用。
然后我不得不从Project-> Properties-> Java Build Path-> Libraries地方删除这些库并添加实际的jar' s(我需要android-support-v4.jar和android -support-v13.jar)到我项目的libs文件夹中。然后它奏效了:
(请注意,没有" Referenced Libraries"文件夹)
答案 4 :(得分:-1)
我收到此错误是因为我使用了整个Android Development Kit安装程序(Eclipse plus SDK,日期为2013年2月6日)。我能够摆脱它的唯一方法是卸载所有这些,并从eclipse.org单独安装Eclipse For Java Developers,仅从Android站点安装Android SDK。该工具包附带的Eclipse有一些有趣的想法,关于在哪里包含库,更不用说c ++和gdb支持的残留部分了。