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

1

Я импортировал .jar в свой проект Android Eclipse (импортировал его в папку libs и добавлял банку в библиотеки в Java Build Path), но когда я пытаюсь использовать его, я получаю java.lang.VerifyError, Библиотека Jiwigo 0.13.1.1; java-библиотеку для доступа к галереям изображений Piwigo. Я знаю, что это должно работать, потому что есть проект openroid 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");

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

  • 0
    дубликат stackoverflow.com/questions/668788/…
  • 0
    Это не дубликат, потому что я импортировал его правильно, это не метод в java.lang, который не поддерживается (или, если это так, он не говорит мне. В каком случае, как вы говорите? Этот ответ не дает подробностей об этом), и я попробовал все остальное по этому вопросу.
Теги:
jar
import
verifyerror

3 ответа

2
Лучший ответ

Любые идеи?

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

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

ни один из которых не находится в Android.

  • 0
    Ах ... тогда мне нужно выяснить, как это делает RegalAndroid, потому что он, безусловно, использует Jiwigo в той или иной форме. Благодарю.
3

Я разработчик 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/

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

Bye.

  • 0
    Повезло мне :). Согласно сайту, который я нашел, «Apache HTTP Client 4 включен в дистрибутив Android ...», так что это хорошо. Но я получаю FATAL EXCEPTION: main java.lang.NoSuchMethodError: org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager.<init> at fr.mael.jiwigo.transverse.session.SessionManager.<init>(SessionManager.java:109) Хотя это может быть не место, чтобы продолжить об этом. Я счастлив проверить вещи. :) Спасибо.
0

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

Попробуйте выполнить следующие действия.

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

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

  • Восстановите свои библиотеки, которые теперь существуют в каталоге Project\libs.

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню