java.lang.VerifyError на импортированном фляге - PullRequest
1 голос
/ 24 марта 2011

Я импортировал .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 ]

3 голосов
/ 27 марта 2011

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

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

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

Bye.

2 голосов
/ 24 марта 2011

Есть идеи?

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

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

, которых нет в Android.

0 голосов
/ 15 июня 2012

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

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

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

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

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

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

...