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