Android上的Jackson:NoClassDefFoundError ObjectMapper错误

时间:2013-09-11 18:49:27

标签: java android json jackson noclassdeffounderror

根据Robospice的Starter Guide,我试图将Robospice应用到我的应用程序中。 我收到以下错误:

  

09-11 20:28:32.290:E / AndroidRuntime(25480):致命异常:主

     

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相关的罐子,但杰克逊是造成问题的罐子)。我也用2.2.3(同样的问题)
  • 测试了它
  • 所有这些都在Eclipse中的“订购和导出”(以及所有其他与Robospice相关的罐子)下进行检查。
  • 我没有使用Maven
  • 我尝试删除并添加新的jar,清理项目 - 这些都不起作用
  • 我的应用针对API级别17(Google API,4.2.2)

还有什么可能导致这个问题?

1 个答案:

答案 0 :(得分:11)

当您引用org.codehaus.jackson.map.ObjectMapper中的com.fasterxml.jackson.databind.ObjectMapper时,您引用了jackson-databind

这可能是因为MappingJacksonHttpMessageConverter使用了jackson-mapper-asl-1.9.xx中的旧版本。你可以得到那些here

否则,请使用MappingJackson2HttpMessageConverter (请注意2),它正确使用最新版本的jackson