По какой-то неизвестной причине мое приложение внезапно перестает собираться из Android Studio.
Я продолжаю получать
> com.android.ide.common.internal.LoggedErrorException: Failed to run command:
/home/martynas/android-sdk/build-tools/19.1.0/dx --dex --num-threads=4 --output
...
...
...
Error Code:
2
Output:
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Cannot merge new index 65536 into a non-jumbo instruction!
Хотя это же приложение успешно построено из командной строки. Я проверил количество ссылок на методы, и оно намного ниже ужасных 64k.
Сейчас я использую AS 0.8.11.
источник
project.properties
не сработало, поэтому я обновил свой скрипт сборки gradle, как описано здесь: stackoverflow.com/questions/17320088/…compile 'com.google.android.gms:play-services-base:7.3.0'
Установите свойство jumboMode в build.gradle:
android { ... dexOptions { jumboMode true } }
Я также нашел это полезным: Отображение количества методов dex по пакетам .
источник
У меня это работает. Я получал
com.android.dex.DexIndexOverflowException: Cannot merge new index 66636 into a non-jumbo instruction!
android { ... dexOptions { jumboMode true } }
Если это не работает, возможно, вы достигли предела ссылки на метод в dex, что является другой проблемой. Вам нужно использовать либо multidex, либо proGuard.
источник
Это ошибка слияния, когда сливаемые файлы dex имеют более 65536 строк. Новый индекс не может поместиться в инструкции const-string, а слияние dex не поддерживает изменение инструкций, если они имеют разные размеры, поэтому его нельзя расширить до инструкции const-string / jumbo. Это было исправлено в jb-mr1, добавив новую опцию: --force-jumbo. Эту ошибку можно исправить, добавив
"dex.force.jumbo=true"
в project.properties.источник
С последней версией Android Studio и флагом "force jumbo", установленным в настройках компилятора Android Studio, эта проблема исчезает.
источник