如何解决Ektorp NoClassDefFoundError:org.ektorp.impl.docref.DocumentReferenceSerializerProvider
| 我试图在Android应用中使用Ektorp CouchDB库,但我总是遇到以下异常: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
结果在我的项目中包含:
commons-io-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-api-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
我不明白他们的意思。
任何想法 ?
解决方法
恐怕Ektorp 1.1.1与Jackson 1.8不兼容。
该问题将在今年夏天发布的1.2.0版本中修复。同时使用Jackson 1.7.7。
, 我不是专家的Java编码器,但我想它在异常之前扩展的Java对象不属于在android上运行的Java实现的一部分。 Dalvik不是标准的JVM。
我建议将此https://github.com/couchone/libcouch-android库用于android上的长沙发。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。