java.lang.VerifyError на импортированном фляге

Я импортировал.jar в мой проект Eclipse Android (импортировал его в папку libs и добавил jar в библиотеки в Java Build Path), но когда я пытаюсь его использовать, я получаю java.lang.VerifyError. Библиотека Jiwigo 0.13.1.1; библиотека Java для доступа к галереям изображений Piwigo. Я знаю, что это должно работать, потому что есть проект Android с открытым исходным кодом под названием RegalAndroid, который также использует его (хотя, более старая версия, и он скопировал источник вместо того, чтобы импортировать его должным образом)..Jar - единственная копия библиотеки на моем компьютере, поэтому я был бы удивлен, если бы это была ошибка конфликта версий. Есть идеи?

Вот мой журнал ошибок (сокращен, потому что все остальное - нормальный материал для Android):

FATAL EXCEPTION: main
java.lang.VerifyError: fr.mael.jiwigo.transverse.session.SessionManager
at com.terrapages.itemdetailsactivities.FavoritesDetailsActivity.initViews(FavoritesDetailsActivity.java:179)
at com.terrapages.itemdetailsactivities.FavoritesDetailsActivity.onResume(FavoritesDetailsActivity.java:83)
at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1149)
at android.app.Activity.performResume(Activity.java:3823)
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3118)
[...]

И строка, в которой он падает (с фиктивными значениями строк, которые отличаются в коде):

SessionManager sessionManager = new SessionManager("username", "password", "gallery-url");

Это первое использование библиотеки в любом месте кода.

3 ответа

Решение

Есть идеи?

SessionManager использует класс или метод, который не существует в Android. Предполагая, что это источник для рассматриваемого класса, нет способа, который будет работать на Android без существенных изменений, так как он использует:

  • старая версия Apache HttpClient
  • JDOM

ни чего из этого нет в Android.

Я разработчик Jiwigo и случайно прочитал этот пост сегодня днем. Поскольку я не разрабатываю на Android, я даже не знал, что мой API не был совместим с Android.

Поэтому после прочтения этого поста я сделал некоторые изменения в своем API: я заменил старую версию Apache HttpClient на новую: 4.1 (я думаю, что она совместима с android, не так ли?) И я удалил все ссылки на JDom. Код теперь использует вместо этого org.w3c.dom.Document. Баночка находится здесь: http://maven.le-guevel.com/artifactory/libs-release-local/fr/mael/jiwigo/jiwigo-ws-api/0.2b/

Как я уже сказал, я только что внес изменения во второй половине дня, и я не очень хорошо их протестировал, поэтому он может быть нестабильным (похоже, работает над моим проектом).

До свидания.

У меня была похожая проблема с моими проектами после выполнения Android ADT и обновлений Java.

Попробуйте эти шаги

  1. Удалите ссылки на ваши внешние библиотеки в вашем проекте Android.

  2. Переместите все свои внешние библиотеки (включая библиотеки объявлений Google) в папку \libs в вашем проекте Android.

  3. Перепишите ваши библиотеки, которые теперь существуют в каталоге Project\libs.

Надеюсь, это поможет

Другие вопросы по тегам