我正在尝试使用Eclipse使用OpenSAML的Android项目。我在构建路径中添加了所有必需的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!
我用谷歌搜索了一下,但没有出现。这个错误意味着什么?
答案 0 :(得分:54)
我发现一个让我感到满意的解决方案是将dex.force.jumbo=true
添加到我的project.properties
。
指出:https://groups.google.com/forum/?fromgroups=#!topic/adt-dev/tuLXN9GkVas
这假设您正在运行ADT 21,因为此功能在以前的版本中不可用。
答案 1 :(得分:14)
同样的问题......只是把
dex.force.jumbo=true
在project.properties的第一行
答案 2 :(得分:13)
如果使用gradle构建,只需将dexOptions添加到build.gradle中以启用jumbo模式:
android {
dexOptions {
jumboMode = true
}
}
记得跑步" gradle clean"在你的新建筑之前。
答案 3 :(得分:6)
我遇到了同样的问题,但我的IDE是IntelliJ IDEA 13.在该版本中,dex.force.jumbo
文件中的project.properties
指令被忽略。
要启用它,只需转到设置|编译器| Android DX 并选择强制巨型模式选项。
希望它有所帮助(这是我能找到的唯一与SO相关的问题)。
答案 4 :(得分:4)
只是添加jumboMode=true
对我的gradle版本没有用。然而,这有效(引自adt-dev小组的Xavier作为对该领域提交的错误的回复):
"尝试手动删除所有构建文件夹并再次构建,制作 确定dexOptions.jumboMode在项目中设置为true?
存在未删除根项目构建的问题 清理任务,这包含有关预定义的一些信息 库"
答案 5 :(得分:2)
添加一些解释:
当Eclipse尝试逐步构建时,当更改增加应用程序中字符串常量的数量时,就会发生这种情况。原始dex有非jumbo指令,并且合并到它的新dex有jumbo指令。干净将表明它是从头开始构建的。
只要应用程序中的字符串数量单调递增,增量构建就可以继续。
答案 6 :(得分:0)
我有同样的问题,但在我的情况下," dex.force.jumbo = true"命令没有解决问题。 我尝试更新JDK和JRE,并解决了这个问题。
希望这个答案有所帮助