Ektorp NoClassDefFoundError: org.ektorp.impl.docref.DocumentReferenceSerializerProvider - PullRequest
3 голосов
/ 15 июня 2011

Я пытаюсь использовать библиотеку Ektorp CouchDB в приложении для Android, и я всегда получаю это исключение:

java.lang.NoClassDefFoundError: org.ektorp.impl.docref.DocumentReferenceSerializerProvider

Вот мой код:

HttpClient authenticatedHttpClient = new StdHttpClient.Builder().host("myhostname").port(5984).username("username").password("password").build();
CouchDbInstance dbInstance = new StdCouchDbInstance(authenticatedHttpClient);
CouchDbConnector db = dbInstance.createConnector("luscinia", true);

Исключение всегда возникает в последней строке кода выше.

Я следовал erktop wiki о зависимостях здесь: http://code.google.com/p/ektorp/wiki/dependencies

В результате мой проект содержит:

  • Обще-ю-2.0.1.jar
  • HttpClient-4.1.1.jar
  • ДЖЕКСОН-ядро-ASL-1.8.1.jar
  • ДЖЕКСОН-картограф-ASL-1.8.1.jar
  • org.ektorp-1.1.1.jar
  • SLF4J-апи-1.6.1.jar
  • slf4j-simple-1.6.1.jar (без него slf4j не работает)

LogCat выдает мне предупреждение и строки ошибок перед исключением, возможно, они могут помочь:

Link of class 'Lorg/ektorp/impl/docref/DocumentReferenceSerializerProvider;' failed
Could not find class 'org.ektorp.impl.docref.DocumentReferenceSerializerProvider', referenced from method org.ektorp.impl.StdObjectMapperFactory.createObjectMapper

Я не понимаю, что они имеют в виду. Есть идеи?

Ответы [ 2 ]

4 голосов
/ 15 июня 2011

Боюсь, что Ektorp 1.1.1 не совместим с Jackson 1.8. Это будет исправлено в версии 1.2.0, которая выйдет этим летом. Тем временем используйте Джексона 1.7.7.

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

Я не опытный Java-кодер, но я представляю, что java-объект расширяется до того, как исключение не является частью реализации java, работающей на Android.Dalvik не является стандартным jvm.Я бы порекомендовал эту https://github.com/couchone/libcouch-android библиотеку для дивана на Android.

...