Android не может разрешить классы из внешних jar - PullRequest
2 голосов
/ 25 марта 2012

Я сталкивался с этим после обновления инструментов SDK с 15-й до 17-й ревизии. Кажется, под капотом произошли некоторые изменения, которые стоили мне долгого вечера. Я подумала, что делюсь этим и надеюсь сохранить чужие нервы:

После обновления мой проект все равно будет компилироваться и собираться, но во время выполнения выдает все виды ошибок и исключений NoClassDefFoundError, ClassDefNotFoundException или dalvik vm, жалующихся в logcat, что он не может разрешить некоторые классы или суперклассы. Оказалось, что он не мог загружать классы, которые были расположены во внешних файлах jar (которые были в пути к классам).

РЕШЕНИЕ / ОТВЕТ: (к сожалению, stackoverflow не позволяет мне ответить на это из-за отсутствия репутации)

Оказывается, что начиная с версии 17 инструментов sdk, только внешние библиотеки, помеченные для экспорта в java, будут частью apk во время выполнения. Так что решение простое:

Перейдите в Java Build Path -> Order and Export и установите флажок рядом со всеми вашими jar-файлами, которые вам нужны во время выполнения (обычно их должно быть все).

Я не уверен, должен ли я был делать это раньше, но с ревизией 15 и ранее это никогда не было проблемой.

1 Ответ

1 голос
/ 25 марта 2012

Просто добавьте библиотеку Jar-файлов в ваш apk.Это очень легко сделать.

  1. Щелкните правой кнопкой мыши проект и выберите свойства.
  2. Нажмите Java Build Path и перейдите на вкладку «Заказ и экспорт».
  3. Нажмите на Select All с правой стороны.Нажмите ok.
  4. Перестройте приложение и попробуйте запустить приложение.

Теперь оно должно работать.Дай мне знать, сработало ли это для тебя ..?

...