Ошибка Android в Eclipse: "Невозможно выполнить dex: невозможно слить новый индекс 65799 в инструкцию без jumbo!"
Я пытаюсь использовать проект Android, используя OpenSAML, используя Eclipse. Я добавил все необходимые файлы 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!
Я немного поработал, но ничего не получилось. Что может означать эта ошибка?
Ответы
Ответ 1
Одно из решений, которое я нашел, что это работало для меня, заключалось в том, чтобы добавить dex.force.jumbo=true
к моему project.properties
.
Это было указано на: https://groups.google.com/forum/?fromgroups=#!topic/adt-dev/tuLXN9GkVas
Предполагается, что вы используете ADT 21, поскольку эта функция недоступна в предыдущих версиях.
Ответ 2
Та же проблема... просто поставьте
dex.force.jumbo=true
в первой строке project.properties
Ответ 3
Если вы используете gradle build, просто добавьте dexOptions в build.gradle, чтобы включить jumbo-режим:
android {
dexOptions {
jumboMode = true
}
}
Не забудьте запустить "gradle clean" перед новым зданием.
Ответ 4
У меня была та же проблема, но моя IDE была IntelliJ IDEA 13. В этой версии команда dex.force.jumbo
в файле project.properties
игнорируется.
Чтобы включить его, просто перейдите в Настройки | Компилятор | Android DX и выберите опцию Force jumbo mode.
Надеюсь, что это поможет (это единственный вопрос, связанный с SO, который я смог найти).
Ответ 5
Просто добавление jumboMode=true
не работало для моей сборки gradle. Однако это сработало (цитата из Xavier в группе adt-dev как ответ на ошибку, зарегистрированную в этой области):
"Попробуйте удалить все папки сборки вручную и снова создать Убедитесь, что для параметра dexOptions.jumboMode установлено значение true в проекте?
Есть проблема, когда сборка корневого проекта не удаляется в чистая задача, и в ней содержится некоторая информация о предварительно дексированной библиотеки".
Ответ 6
Добавление некоторого объяснения:
Это происходит, когда Eclipse пытается инкрементно строить, когда изменение увеличивает количество строковых констант в приложении. В оригинале dex были инструкции, отличные от jumbo, и новый dex, который слился с ним, имеет jumbo-инструкции. Выполнение чистой будет показывать, что она работает, когда вы строите с нуля.
Пока число строк в вашем приложении монотонно возрастает, инкрементные сборки будут работать в будущем.
Ответ 7
У меня была та же проблема, но в моем случае команда "dex.force.jumbo = true" не решает проблему.
Я пытаюсь обновить JDK и JRE и решить эту проблему.
Надеюсь, что этот ответ поможет