INSTALL_FAILED_DEXOPT при использовании GreenDao
Фон
Я хотел упростить использование БД в приложении для Android.
Для этого я сравнил некоторые сторонние библиотеки, которые создают слой DAO.
Я придумал красивую библиотеку под названием " GreenDao" (презентация об этом здесь) . Веб-сайт показывает, что он быстрее других конкурентов (например, ORMLite) и оптимизирован для Android.
Эта проблема
По какой-то причине на каком-то устройстве (обычно старом, с ГБ) я получаю следующую ошибку консоли при попытке установить приложение:
Installation error: INSTALL_FAILED_DEXOPT
Please check logcat output for more details.
Launch canceled!
Я искал причину этой ошибки, но не смог найти способ ее устранения. Многие жалуются на эту ошибку, но я не могу понять, почему она возникает и что можно сделать.
Ошибка довольно распространенная и известная, но она никогда не упоминается как результат использования этой библиотеки, но когда я удаляю использование этой библиотеки, все работает нормально...
Также обратите внимание, что на более новых устройствах (таких как nexus 4) он устанавливается и работает просто отлично, и что сам образец также работает нормально независимо от того, на каком устройстве я его тестирую.
Вопрос
Почему это происходит?
Возможно ли, что структура классов слишком велика для загрузки старыми устройствами, поскольку мы используем другие библиотеки?
Может быть, я достиг предела кода, который поддерживается приложениями для Android?
Сам файл JAR занимает всего 87 КБ...
Как я могу решить это?
1 ответ
Хорошо, я нашел проблему и решение:
Это не имеет ничего общего с GreenDao.
Это потому, что приложение использует слишком много банок, поэтому, возможно, Android имеет ограничение кода.
Решение состоит в том, чтобы удалить ненужные файлы JAR или удалить много кода.