我已尝试根据 Robospice 的 Starter Guide 将 Robospice 实现到我的应用程序中. 我收到以下错误:
09-11 20:28:32.290: E/AndroidRuntime(25480): FATAL EXCEPTION: main
09-11 20:28:32.290: E/AndroidRuntime(25480): java.lang.NoClassDefFoundError: org.codehaus.jackson.map.ObjectMapper
09-11 20:28:32.290: E/AndroidRuntime(25480): at org.springframework.http.converter.json.MappingJacksonHttpMessageConverter.(MappingJacksonHttpMessageConverter.java:54)
09-11 20:28:32.290: E/AndroidRuntime(25480): at com.my.app.io.service.JsonSpiceService.createRestTemplate(JsonSpiceService.java:37)
到目前为止,这是我尝试过的:
- 我包含以下 jars(
libs
文件夹):jackson-annotations-2.2.2.jar、jackson-core-2.2.2.jar、jackson-databind-2.2.2.jar (在所有其他与 Robospice 相关的 jar 中,但 Jackson 是导致问题的那个)。我也用 2.2.3 测试过(同样的问题) - 所有这些都在 Eclipse 中的“订购和导出”下检查(以及所有其他与 Robospice 相关的 jar)
- 我没有使用 Maven
- 我试过删除和添加新的 jar,清理项目 - 这些都不起作用
- 我的应用针对 API 级别 17(Google API,4.2.2)
还有什么可能导致这个问题?
最佳答案
当您应该引用 com.fasterxml.jackson.databind.ObjectMapper
时,您正在引用 org.codehaus.jackson.map.ObjectMapper
,它位于 jackson -数据绑定(bind)
。
这可能是因为 MappingJacksonHttpMessageConverter
使用了旧版本,它在 jackson-mapper-asl-1.9.xx
中。你可以得到那些 here .
否则,请使用 MappingJackson2HttpMessageConverter
(注意 2),它会正确使用最新版本的 jackson
。
关于java - Android 上的 jackson : NoClassDefFoundError ObjectMapper error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18749009/