Ошибка Android в Eclipse: "Невозможно выполнить dex: невозможно слить новый индекс 65799 в инструкцию без jumbo!" - программирование
Подтвердить что ты не робот

Ошибка 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!

Я немного поработал, но ничего не получилось. Что может означать эта ошибка?

4b9b3361

Ответ 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 и решить эту проблему.

Надеюсь, что этот ответ поможет