2012-11-26 163 views
3

我想让我的android应用程序功能作为一个REST客户端。基本上我遵循这个例子:https://github.com/SpringSource/spring-android-samples/tree/master/spring-android-basic-auth/client/src/org/springframework/android/basicauthAndroid的春天杰克逊映射:NoClassDefFoundError

我正在开发Android 2.3及以上版本。我添加了

spring-android-rest-template-1.0.0.RELEASE.jar 
spring-android-auth-1.0.0.RELEASE.jar 
spring-android-core-1.0.0.RELEASE.jar and 
jackson-mini-1.9.11.jar 

到我的构建路径。

无论如何,我总是得到这些错误

11-26 19:01:24.461: E/dalvikvm(15994): Could not find class 'org.codehaus.jackson.map.ObjectMapper', referenced from method org.springframework.http.converter.json.MappingJacksonHttpMessageConverter.<init> 
11-26 19:01:24.480: E/AndroidRuntime(15994): java.lang.RuntimeException: An error occured while executing doInBackground() 
11-26 19:01:24.480: E/AndroidRuntime(15994): Caused by: java.lang.NoClassDefFoundError: org.codehaus.jackson.map.ObjectMapper 

在这段代码的第二行:

RestTemplate restTemplate = new RestTemplate(); 
restTemplate.getMessageConverters().add(new MappingJacksonHttpMessageConverter()); 

任何人可以帮助我在这里?

光圈

+1

杰克逊迷你没有映射功能...使用“全”(核心+映射器)版本 – Selvin

+0

这解决了我的问题。感谢Selvin! – friday

+0

除非您知道所有错综复杂的依赖项,否则可以安全地使用包含超级依赖项集的jackson-all-x.x.x.jar。最后我检查了一下,最新的版本是1.9.11。位于此处:[http://wiki.fasterxml.com/JacksonDownload](http://wiki.fasterxml.com/JacksonDownload)。干杯。 –

回答

2

这个问题的解决方案是(如Selvin在他的评论中指出)包括完整的杰克逊而不是杰克逊的迷你图书馆。 再次感谢Selvin。

4

如果你在运行期间得到NoClassDefFoundError,那么我怀疑你不包括.jar文件在运行时的工作。你必须检查的复选框这样每个的.jar:

enter image description here