Я импортировал .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");
Это первое использование библиотеки в любом месте кода.
Любые идеи?
SessionManager
использует класс или метод, которых нет в Android. Предполагая, что это источник для рассматриваемого класса, нет никакого способа, который будет работать на Android без существенных изменений, поскольку он использует:
ни один из которых не находится в 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/
Как я уже сказал, я только что сделал изменения сегодня днем, и я не очень хорошо его тестировал, поэтому он может быть нестабильным (похоже, он работает над моим проектом).
Bye.
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)
Хотя это может быть не место, чтобы продолжить об этом. Я счастлив проверить вещи. :) Спасибо.
У меня была аналогичная проблема с моими проектами после выполнения Android ADT и обновлений Java.
Попробуйте выполнить следующие действия.
Удалить ссылки на внешние библиотеки в проекте Android.
Переместите все ваши внешние библиотеки (включая библиотеки Google) в папку \libs внутри вашего проекта Android.
Восстановите свои библиотеки, которые теперь существуют в каталоге Project\libs.
Надеюсь, это поможет