Eclipse中的Android错误:“无法执行dex:无法将新的索引65799合并到非巨型指令中!
我正在尝试使用Eclipse的OpenSAML的Android项目。 我已经在构buildpath中添加了所有必需的jar文件。 现在,当我作为Android应用程序运行程序时,出现以下错误:
[2012-11-18 11:52:59 - Dex Loader] Unable to execute dex: Cannot merge new index 67075 into a non-jumbo instruction! [2012-11-18 11:52:59 - MyTestProgram] Conversion to Dalvik format failed: Unable to execute dex: Cannot merge new index 67075 into a non-jumbo instruction!
我GOOGLE了一下,但没有出现。 这个错误是什么意思?
我find的一个解决scheme是为我的project.properties
添加dex.force.jumbo=true
。
这是在https://groups.google.com/forum/?fromgroups=#!topic/adt-dev/tuLXN9GkVas
这是假设您正在运行ADT 21,因为此function在以前的版本中不可用。
同样的问题…只是放
dex.force.jumbo=true
在project.properties的第一行
如果使用gradle构build,只需将dexOptions添加到build.gradle以启用巨型模式:
android { dexOptions { jumboMode = true } }
记得在你的新build筑物之前运行“gradle clean”。
我有同样的问题,但我的IDE是IntelliJ IDEA 13.在该版本中, project.properties
文件中的dex.force.jumbo
指令被忽略。
要启用它,只需转到设置| 编译器| Android DX并select“ 强制超大模式”选项。
希望它有帮助(这是我能find的唯一与SO有关的问题)。
只是添加jumboMode=true
不适用于我的gradle构build。 然而,这工作(援引Xavier在adt开发小组作为对这个区域提交的一个错误的答复):
“尝试手动删除所有构build文件夹并重新构build,确保项目中的dexOptions.jumboMode设置为true?
有一个问题,在干净的任务中,根项目的构build不会被删除,并且包含一些关于预先指定好的库的信息。
添加一些解释:
当Eclipse尝试增量构build时,会发生这种情况,当更改增加应用程序中string常量的数量时。 原来的dex有非巨大的指示,而新的dex被合并到它有巨大的指示。 做一个干净的将表明,它的工作原理,当你从头开始build立。
只要应用程序中的string数量单调递增,增量构build将继续前进。
我有同样的问题,但在我的情况下,“dex.force.jumbo = true”命令不能解决问题。 我尝试更新JDK和JRE,并解决问题。
希望这个答案有帮助