Я сталкивался с этим после обновления инструментов SDK с 15-й до 17-й ревизии. Кажется, под капотом произошли некоторые изменения, которые стоили мне долгого вечера. Я подумала, что делюсь этим и надеюсь сохранить чужие нервы:
После обновления мой проект все равно будет компилироваться и собираться, но во время выполнения выдает все виды ошибок и исключений NoClassDefFoundError
, ClassDefNotFoundException
или dalvik vm, жалующихся в logcat, что он не может разрешить некоторые классы или суперклассы. Оказалось, что он не мог загружать классы, которые были расположены во внешних файлах jar (которые были в пути к классам).
РЕШЕНИЕ / ОТВЕТ: (к сожалению, stackoverflow не позволяет мне ответить на это из-за отсутствия репутации)
Оказывается, что начиная с версии 17 инструментов sdk, только внешние библиотеки, помеченные для экспорта в java, будут частью apk во время выполнения. Так что решение простое:
Перейдите в Java Build Path -> Order and Export и установите флажок рядом со всеми вашими jar-файлами, которые вам нужны во время выполнения (обычно их должно быть все).
Я не уверен, должен ли я был делать это раньше, но с ревизией 15 и ранее это никогда не было проблемой.