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.
Попробуйте эти шаги
Удалите ссылки на ваши внешние библиотеки в вашем проекте Android.
Переместите все свои внешние библиотеки (включая библиотеки объявлений Google) в папку \libs в вашем проекте Android.
Перепишите ваши библиотеки, которые теперь существуют в каталоге Project\libs.
Надеюсь, это поможет