无法执行dex:多个dex文件定义Lcom / myapp / R $数组;
由于更新到ADT
14我不能再build立我的项目。 更新之前,它正在build设好。
错误:
[2011-10-23 16:23:29 - Dex Loader] Unable to execute dex: Multiple dex files define Lcom/myapp/R$array; [2011-10-23 16:23:29 - myProj] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lcom/myapp/R$array;
已经有类似的报道,我也尝试了其中的build议
- 重新启动
Eclipse
。 - 清理项目并重build – 禁用“Project-> Build Automatically”选项,然后“Clean”和“Build”项目,然后尝试运行。 重置“自动构build”选项打开
- 重新安装
Android
开发者工具 - 重新安装Eclipse(更新到最新版本3.7.1)
- 从文件系统创build一个新的项目导入
- 从颠覆创build一个新的项目。
我有同样的问题,很奇怪,因为它只发生在使用Eclipse时(但它与ant确定)。 这是我如何解决它:
- 右键单击
Project Name
- select
Build Path
– >Configure Build Path
-
在
Java Build Path
,转到选项卡Order and Export
-
取消选中
.jar
库
只是有时:在订单和导出选项卡,我没有任何jar库,所以我有未经检查的Android私人库项目。 现在我的项目正在运行。
清理了以前版本的工具中剩下的一些目录和文件后,我的问题得到了解决。 ADT Rev 14更改了二进制文件的存储位置 。 我删除了整个bin目录,重新启动了Eclipse并清除了构build并强制重build。 这似乎最初做的伎俩,但问题在下一次运行后回来。
我终于发现我的bin目录包含在项目构buildpath中。 我从构buildpath中排除bin,并重复上述步骤。 这解决了我的问题。
[为我解决]
Eclipse项目属性 – > Java构buildpath – >订单和导出
取消选中Android私有库。
以上都没有帮助。 这到底是一个简单的问题。
我有一个使用FacebookSDK和ViewPagerIndicator作为图书馆项目的项目。 所有这些都是基于Android API 16构build的,这两个项目使用了android支持库vX(X不是16!)
我为这两个项目添加了一个外部JAR,并将其指向\ extras \ android \ v4 …并且还移除了我在libs文件夹中的v4 jar。
清理所有项目并重新构build。
Voilla!
我收到的确切错误:无法执行dex:多个dex文件定义Landroid / support / v4 / view / PagerAdapter; 转换为Dalvik格式失败:无法执行dex:多个dex文件定义了Landroid / support / v4 / view / PagerAdapter;
这个问题发生在我身上,我在我的libs文件夹中有一个名为gson-2.2.2.jar的外部.jar,但由于某种原因,有两个,gson-2.2.2.jar和gson-2.2.2.jar 1),我只是删除了后者,我的项目又修好了。
- closures日食。
- 删除项目文件夹内的bin文件夹。
- 开始日食并清理你的项目。
- 现在运行,问题应该消失
正如其他人所提到的,如果在构buildpath中有相同类的多个副本,则会发生这种情况 – 在类path中包括bin /是保证此问题的一种方法。
对我来说,这发生在我将android-support-v4.jar添加到我的libs /文件夹时,并且不知何故eclipse又添加了第二个副本到bin / classes / android-support-v4.jar。
删除bin / classes中的额外副本解决了这个问题 – 不确定为什么Eclipse在那里做了一个副本。
你可以用这个来testing
grep -r YourOffendingClassName YourApp | grep jar
对我来说,我只需右键单击项目 – >构buildpath – >configuration构buildpath – >库 – >删除依赖项
之后工作。
如果您有两个包含相同类名的jar子,就会发生这个错误,例如我有两个库:jsr311-api-1.1.1.jar和jersey-core-1.17.1.jar,都包含类javax.ws .rs.ApplicationPath。 我删除了jsr311-api-1.1.1.jar,它工作正常。
将facebooksdk.jar添加到已经在android-support-v4.jar上有依赖关系的项目后,我得到了这个错误。 由于facebooksdk.jar已经包含了自己的android-support-v4.jar,因此存在冲突。 从项目Properties / Java Build Path / Libraries中删除早期的android-support-v4.jar解决了这个问题。
转到项目/属性和Java 构buildpath,并取消选中 Android专用库 。
完成
我从构buildpath中删除Android依赖关系,它的工作。
编辑:忽略这一点。 我在我的Maven依赖和libs文件夹中有相同的jar。 我删除了lib文件夹中的一个。
你可能已经安装了r14 ,这个错误可能是由于平台工具更新引起的,你必须重新安装你的sdk
对我来说这个问题只有在我的项目中涉及Android库项目时才存在。 所以当我删除所有的库,并按照你所说的,我可以再次运行我的应用程序。 如果有涉及的图书馆,甚至是垃圾诡计技巧都可以胜任。
我不明白为什么这个错误今天首次出现,因为我现在正在使用ADT 14几天。 那么还有其他的错误让我开心。
删除bin文件夹是不够的,我也删除了gen文件夹。 然后在两次重build之后,dex错误信息消失了。
在Project Explorer中select项目,右键单击并selectProperties – > Java Build Path – > Source – >选中允许输出文件夹作为源文件夹
我基本上面临同样的问题。 我删除了BIN文件夹,然后从eclipse中删除了Order和Import的未使用jar文件。 IT之后,工作
我迟到了这个聚会,但join了我自己的经验,所以我可以再次find它:)
升级了android sdk和eclipse的广告插件后,我遇到了这个问题。 没有升级不受惩罚!
对我来说问题是关于图书馆项目,我的应用程序引用标准的Java项目和Android库项目。 我注意到Java构buildpath设置包括在源列表中的Android库项目src和res文件夹(upvotes提到bin中的所有提到的问题,src和res也是一个问题。)
所以解决办法是:
- 从“源列表”和“项目”列表中的设置的“Java构buildpath”部分删除所有引用的Android库源和项目引用
- 确保在项目列表中列出了纯Java依赖关系,并在Order和Export选项卡中选中,以使这些类包含在apk中
- 确保所有Android库依赖项都列在项目属性的Android部分中,位于选中SDK版本下面的库部分。
这是从其他解决scheme一起把所有的一切! 唷!
当我从adt 14升级到15时,遇到了这个问题,为了让它正常工作,我刚刚删除了.eclipse文件夹(以及我的设置)并重新安装了adt 15。
在阅读Terrys关于删除bin目录和Larrys关于ANT目录的位置的响应之后:
我将位于我的项目BIN目录中的文件移动到BIN / CLASSES并启动并运行。
编辑1然后第二次运行失败… doh
编辑2所以封闭的Eclipse移动文件回到原来的位置,它的所有工作…嗯? 我不假装知道为什么这个工作。 如果有任何更改将会更新。
编辑3我从备份中注意到,在BIN目录和BIN / CLASSES中的确有重复的文件。
所以答案是:两个位置都没有文件。 至less对我来说,这是工作。
修改你的eclipse.ini文件并设置最大内存参数
-Xmx1024m
然后重新启动电脑。
它为我工作。
find了我相信的解决scheme?
[2013-04-28 23:56:09 - Dex Loader] Unable to execute dex: Multiple dex files define Lcom/coremedia/iso/AbstractBoxParser$1;
它说:“Lcom / coremedia / iso / AbstractBoxParser $ 1”恰好是我导入导致问题的库的位置。 查找com.codemedia.iso.AbstractBoxParser $ 1.class和.AbstractBoxParser.class ….拿起那个jar,解压缩它,删除这两个文件,然后重新打包为.zip,添加到库中,清理并工作! 没有更多的冲突对我来说! (也没有更新或额外的下载)
我在我的libs文件夹中有两个不同版本的Cordova .jar文件,我删除了一个我甚至没有使用过的文件,并立即运行。 奇怪,因为我没有注意到之前,它的工作,然后突然停止工作…
ADT R14更新更改了类到bin / classes目录的位置(请参阅http://tools.android.com/recent/buildchangesinrevision14 )。 如果您正在使用ANT,则应该将class级的path从bin更改为bin / classes。 这对我有效。
对我的解决scheme:
- 备份您的代码!
-
导航到您的项目工作区(不是您的项目)并运行以下命令:
dev1:workspace $ cd〜/ Documents / workspace / .metadata / .plugins / dev1:workspace $ rm -rf org.eclipse.core.resources
-
导航到您的Eclipse目录并键入以下命令:
dev1:eclipse $ ./eclipse clear
-
Eclipse将从一个空的工作空间开始 – 不用担心你的项目仍然存在。 从现有资源简单地创build新项目,事情应该是肉汁。
我收到的确切错误: [2012-02-07 14:15:53 – Dex Loader]无法执行dex:多个dex文件定义Landroid / support / v4 / view / PagerAdapter; [2012-02-07 14:15:53 – ProjectCloud]转换成Dalvik格式失败:无法执行dex:多个dex文件定义Landroid / support / v4 / view / PagerAdapter;
我有几个在AndroidManifest中指定了相同包名的库项目(所以没有重复的字段名由R.java生成)。 我不得不从AndroidManifest.xml中删除所有库项目的任何权限和活动,以消除错误,因此Manifest.java不是多次创build的。 希望这可以帮助某人。
在尝试了所有其他build议之后,我删除了项目“bin”目录中的所有内容,然后再次运行eclipse并运行。
我将一个非库项目转换为一个库项目,但是它在libs文件夹中有一个先前build立的jar文件。 删除这个jar文件导致这个错误消失。
我正面临同样的问题,然后我看到,而推我的应用程序一些jar文件被加载两次,因此多个dex错误。只要去你的项目属性 – > Java构buildpath,并尝试取消选中正在加载两次的jar。
[为我解决]
通过删除重复库“JAR文件”,然后删除BuildConfig.java文件,清理项目及其工作。