Код: Выделить всё
defaultConfig {
multiDexEnabled true
}
dependencies {
compile 'com.android.support:multidex:1.0.0'
}
Ограничения библиотеки поддержки multidex
Библиотека поддержки multidex имеет некоторые известные ограничения, о которых вам следует знать и проверять при включении ее в конфигурацию сборки приложения:
Установка .dex Файлы во время запуска в раздел данных устройства сложны и могут привести к ошибкам «Приложение не отвечает» (ANR), если вторичные файлы dex имеют большой размер. В этом случае вам следует применить методы сжатия кода с помощью ProGuard, чтобы минимизировать размер файлов dex и удалить неиспользуемые части кода.
Приложения, использующие multidex, могут не запускаться на устройствах, на которых работают версии платформа более ранней версии, чем Android 4.0 (уровень API 14) из-за ошибки Dalvik LinearAlloc (ошибка 22586). Если вы ориентируетесь на уровни API ниже 14, обязательно выполните тестирование на этих версиях платформы, поскольку в вашем приложении могут возникнуть проблемы при запуске или при загрузке определенных групп классов. Сжатие кода может уменьшить или, возможно, устранить эти потенциальные проблемы.
Приложения, использующие мультидексную конфигурацию, которая отправляет очень большие запросы на выделение памяти, могут аварийно завершить работу во время выполнения из-за ограничения Dalvik LinearAlloc (проблема 78035). Предел выделения был увеличен в Android 4.0 (уровень API 14), но приложения по-прежнему могут превышать этот предел в версиях Android до Android 5.0 (уровень API 21).
Существуют сложные требования. относительно того, какие классы необходимы в основном файле dex при выполнении в среде выполнения Dalvik. Обновления инструментов сборки Android соответствуют требованиям Android, но возможно, что другие включенные библиотеки имеют дополнительные требования к зависимостям, включая использование самоанализа или вызов методов Java из машинного кода. Некоторые библиотеки невозможно будет использовать до тех пор, пока инструменты мультидексной сборки не будут обновлены и не позволят вам указывать классы, которые должны быть включены в основной файл dex.
Хорошо, но... что произойдет, если вы используете minsdkversion и targetdkversions 21 или выше (Android 5.0 и выше) и не добавляете зависимость библиотеки support:multidex? будут ли эти ограничения существовать? необходимо будет добавить multidexEnabled true в файл градиента defaultConfig?
Я пробовал сделать это без multidexEnabled true в defaultConfig и использовании targetdkversion 21 и minsdkversion 21, и это дает мне ошибку компиляции: «Превышен предел метода».
Подробнее здесь: https://stackoverflow.com/questions/361 ... and-higher
Мобильная версия