我知道这个问题曾经在这里问过几次。但我还没有看到任何可能的解决方案。 在我将项目“作为Android应用程序运行”之前,如果我不清理它,我会收到以下错误并且必须重新启动Eclipse ...并再次清理。
Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define
Lcom/jstun/core/attribute/MessageAttributeInterface;
com.jstun.core ...是我的src文件夹的一部分,当然我无法将其删除。即使我删除了该包,另一个包将显示为错误,如:
Unable to execute dex: Multiple dex files define
Landroid/support/v4/app/ActivityCompatHoneycomb;
自从更新到ADT 15后我看到了这个错误,我在Ubuntu上使用Eclipse Galileo 你有什么主意吗?谢谢你的回复!
答案 0 :(得分:136)
这是构建路径问题。
确保您的bin文件夹未包含在构建路径中。
右键点击您的项目 - >去属性 - >构建路径。
确保Honeycomb库位于您的libs/
文件夹中,而不在源文件夹中。
在构建路径中将libs/
中的库单独包含在内。
android-support-v4
库以获得Ice Cream Sandwich支持而不是Honeycomb支持库。 答案 1 :(得分:58)
我今天遇到了类似的错误,原因是我的应用程序项目使用的两个库项目引用了支持库,但是版本不同。
更多细节: 我的应用依赖于2个图书馆项目
要解决这个问题,我必须让FaceBookSDK库直接依赖ABS库而不是支持库。
答案 2 :(得分:47)
对我来说,我删除了名为android support v4.jar的libs文件夹中的文件,一切顺利。古德勒克:)
答案 3 :(得分:33)
我发生了同样的错误,每当我修复它时,它会在我重新启动Eclipse后回来。
首先,正如其他人所说,请确保您的项目周围没有相同.jar文件的多个副本。
就我而言,我有一个使用ActionBarSherlock的主项目(以及其他库项目)。对我有用的诀窍是进入ActionBarSherlock --> Properties --> Java Build path --> Order of Export
并取消选择Android Private Libraries
。然后进入Project -> Clean
,现在你应该能够正确地构建项目了。
现在,出于某种原因,每次重新启动Eclipse时,它都会自动启用该复选框,因此我必须再次重复此过程。
希望这可以帮助一些失去灵魂的人:)
答案 4 :(得分:31)
转到Project / properties和Java Built Path并取消选中Android Private Libraries
答案 5 :(得分:15)
对我来说,只需转到项目属性>> Java构建路径>>订单和出口。取消选中所有外部库,如下图所示。它对我有用。希望这有帮助。
答案 6 :(得分:8)
我在项目中也遇到过这个问题。 AVD无法重新加载资产,lib,res等文件夹上下文。
问题:
Dex Loader]无法执行dex:多个dex文件定义Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl
。
然后,我创建了新项目并复制了MainActivity.java
,activity_main.xml
,可绘制的上下文。
然后从包探索中删除旧项目,重新启动Eclipse和AVD。
我的项目现在正常工作.... :)
我希望这些步骤能帮到你们一点点的人...... !!
答案 7 :(得分:8)
我有同样的问题,我尝试的是:
它对我有用,谢谢。
答案 8 :(得分:6)
正如其他人所提到的,当您在构建路径中或设置中的其他位置拥有同一类的多个副本时,就会发生这种情况。
我已将android-support-v4.jar添加到我的libs /文件夹中,并且不知何故eclipse在bin / classes / android-support-v4.jar中添加了第二个副本。
您可以使用
进行测试grep -r YourOffendingClassName YourApp | grep jar
删除bin / classes中的额外副本解决了这个问题 - 不确定为什么Eclipse在那里制作副本。
答案 9 :(得分:6)
如果有些人因为facebook-connent-plugin for phonegap而面临这个问题
尝试删除bin / class / com / facebook / android目录中的文件! - >并重建
答案 10 :(得分:5)
我出于另一个原因得到了这个错误。我错误地添加了v4和v13支持库。这对我来说不是必需的,因为我的minSdkVersion是15。
我通过仅修复了它,包括v13支持库。另外,请确保在eclipse中检查导出的库构建路径中的库。我也将它移到了顶部。
答案 11 :(得分:4)
即使经过多个答案,也没有任何解决方案适用于我。
我从构建路径中删除了“Android Dependencies”。 将所有jar文件再次添加到构建路径,错误消失了。 不知何故,日食似乎缓存了这些东西。
答案 12 :(得分:3)
我将这个答案留给那些像我一样参与这种情况的人。
我偶然发现,我注意到我错误地将支持库JAR文件拖放到我的src文件夹中,它就在那里。因为我不知道它是怎么发生的,或者当我把它放在那里时,我无法想象那里出了什么问题。
我遇到了同样的错误,我在一段时间后发现了问题并将其删除了。项目现在正常运作。
答案 13 :(得分:3)
我遇到过这个问题并不代表同一个库被多次加载,但System试图同时加载一个具有相同名称和可能相同包名的类,即
com.pack1.de
和Class Geometry
library1.jar
和另一个
com.pack1.de
和Class Geometry
library2.jar.
你应该怎样接近? 您应该分析正在使用的方法,library1.jar或library2的方法。
有2个解决方案,
我希望这澄清了这个经常被问到的问题。
答案 14 :(得分:3)
对我而言,解决方案就是做以下事情:
答案 15 :(得分:2)
我最初的问题是:
无法执行dex:java.nio.BufferOverflowException。检查Eclipse日志中的堆栈跟踪。
1)我右键单击我的项目 - > Android工具 - >添加支持库 (运行我的应用程序......没有用,所以我继续......) 2)再次右键单击项目 - > 属性 - > Android - >检查Project Build Target上的Android 4.1.2(16) (再次运行应用程序......并获取此信息:
无法执行dex:多个dex文件定义了Landroid / support / v4 / app / BackStackState;
3)所以我去了我项目的“lib”文件夹,删除 “old”Android.support.library.jar (运行应用程序并交叉手指......)
¡工作!
希望它有所帮助...感谢别人!
答案 16 :(得分:2)
我从构建路径中删除了Android依赖项,但它确实有效。
答案 17 :(得分:1)
在我的应用程序项目中,我在Eclipse工作区(在我的情况下是Facebook SDK)中引用了一个库项目,同时将Facebook SDK包含在jar中,这个错误发生在我身上libs文件夹。删除库引用但将jar保留在libs文件夹中会删除错误。
答案 18 :(得分:1)
我有同样的问题。我不得不删除.apk
文件,然后才能工作。
答案 19 :(得分:1)
build Path>configuration build path
support-v4 library
,然后点击删除然后清理你的项目并运行它将起作用: - )
答案 20 :(得分:1)
对我来说,我从lib文件夹中删除了android-support-v4.jar,并从构建路径中删除了。
答案 21 :(得分:0)
如果您使用的是cordova,请尝试 cordova clean 命令
答案 22 :(得分:0)
ULTRA简单的解决方案和最好的:
删除右键单击主项目文件夹中的所有内容 - >属性 - >除了Android X.Y之外的Java Build Path(其中X.Y是android中的版本)。清洁和构建。完成!
在此之前确保拥有一个android-support-v4.jar。
答案 23 :(得分:0)
添加无数其他潜在来源......我更新了项目lib
文件夹中的所有库,但随后Eclipse“帮助”重新安装了所有原始库。 Eclipse中没有任何对这些库的引用,但外部dex-maker程序只抓取了lib
目录中的所有文件,因此获得了几个库.jar
文件的两个版本。
git status
确定了新文件,git clean -f
为我删除了它们(虽然我有时不得不在Windows上等待或重新启动Eclipse,因为它仍然从副本打开文件)。
答案 24 :(得分:0)
对我来说问题是,我之前添加了一个lib项目(autobahn lib),后来又切换到同一个库的Jar文件。虽然我已经删除了对旧库项目的引用,但我收到了这个错误。 按照这里的所有答案,我检查了构建路径等。但我还没有添加这些库来手动构建路径。所以我没有什么可以删除。 终于遇到了这个文件夹。
仓/ dexedLibs
我注意到有两个与autobahn Android对应的jar文件对应导致冲突。所以我删除了dexedLibs文件夹中的所有jar文件并重建了项目。这解决了这个问题。
答案 25 :(得分:0)
我在Intellij中遇到了这个问题,这是因为我添加到项目中的ActionBarSherlock库将android-support-v4.jar定义为编译依赖项,这个jar已经包含在我的项目中所以有多个副本/版本DEX在编译时。
解决方法是将此jar的ActionBarSherlock模块依赖项更改为Runtime而不是compile,因为我的项目已经提供了它。
答案 26 :(得分:0)
我也在努力寻找这个问题。在我的情况下发生的事情是将apk复制到电子邮件(拖放) - 错误地将apk粘贴在其中一个软件包的src文件夹中。 从源文件夹中删除apk后,它工作正常。
答案 27 :(得分:0)
将多个库中的同一个库添加到项目中时会发生此问题。如果您还没有多次添加库,请查看您在项目中添加的库的依赖项/私有库,很可能它们已经包含了导致此冲突的库。
答案 28 :(得分:0)
我在eclipse中找到了以下解决方案...希望它适合你:)
Right click on the Project Name
Select Java Build Path, go to the tab Order and Export
Unchecked your .jar library's
答案 29 :(得分:0)
如果有其他人像我刚才那样对这个问题感到头疼:
我的案例涉及一系列图书馆项目。只需在所有库上清理项目就可以修复所有内容
答案 30 :(得分:-16)
修改 eclipse.ini
中的最大内存参数-Xmx1024m
然后重新启动计算机。
它对我有用:)