android - "failure in processEncodedAnnotation"在 Android 上使用 Jackson 和 ScalaModule

标签 android json scala jackson

我将 Scala 2.11.0 与 sbt 和 android-sdk-plugin 以及 Jackson 一起用作 Json Marshaller。当应用程序尝试从 Json 反序列化为我的 Scala 案例类时,设备上发生以下异常:

W/dalvikvm﹕ WARNING: could not find annotation member bytes in Lscala/reflect/ScalaSignature;                                                                               
E/dalvikvm﹕ Failed creating annotation element (m=0x41a575c0 n=0x41a575e0 a=0x0 r=0x0)                                                                                      
W/System.err﹕ java.lang.RuntimeException: failure in processEncodedAnnotation                                                                                               
W/System.err﹕ java.lang.RuntimeException: failure in processEncodedAnnotation                                                                                               
W/System.err﹕ at java.lang.Class.getDeclaredAnnotations(Native Method)                                                                                                      
W/System.err﹕ at com.fasterxml.jackson.databind.introspect.AnnotatedClass.resolveClassAnnotations(AnnotatedClass.java:308)                                                  
W/System.err﹕ at com.fasterxml.jackson.databind.introspect.AnnotatedClass.getAnnotation(AnnotatedClass.java:173)                                                            
W/System.err﹕ at com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector.findAutoDetectVisibility(JacksonAnnotationIntrospector.java:140)                   
W/System.err﹕ at com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector.<init>(POJOPropertiesCollector.java:111)                                                 
W/System.err﹕ at com.fasterxml.jackson.module.scala.introspect.ScalaPropertiesCollector.<init>(ScalaPropertiesCollector.scala:15)                                           
W/System.err﹕ at com.fasterxml.jackson.module.scala.introspect.ScalaClassIntrospector$.constructPropertyCollector(ScalaClassIntrospector.scala:24)                          
W/System.err﹕ at com.fasterxml.jackson.databind.introspect.BasicClassIntrospector.collectProperties(BasicClassIntrospector.java:142)                                        
W/System.err﹕ at com.fasterxml.jackson.databind.introspect.BasicClassIntrospector.forDeserialization(BasicClassIntrospector.java:81)                                        
W/System.err﹕ at com.fasterxml.jackson.databind.introspect.BasicClassIntrospector.forDeserialization(BasicClassIntrospector.java:11)                                        
W/System.err﹕ at com.fasterxml.jackson.databind.DeserializationConfig.introspect(DeserializationConfig.java:547)                                                            
W/System.err﹕ at com.fasterxml.jackson.databind.deser.DeserializerCache._createDeserializer(DeserializerCache.java:325)                                                     
W/System.err﹕ at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:263)                                                        
W/System.err﹕ at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(DeserializerCache.java:243)                                        
W/System.err﹕ at com.fasterxml.jackson.databind.deser.DeserializerCache.hasValueDeserializerFor(DeserializerCache.java:193)                                                 
W/System.err﹕ at com.fasterxml.jackson.databind.DeserializationContext.hasValueDeserializerFor(DeserializationContext.java:345)                                             
W/System.err﹕ at com.fasterxml.jackson.databind.ObjectMapper.canDeserialize(ObjectMapper.java:2072)                                                                         
W/System.err﹕ at org.springframework.http.converter.json.MappingJackson2HttpMessageConverter.canRead(MappingJackson2HttpMessageConverter.java:103)                          
W/System.err﹕ at org.springframework.web.client.RestTemplate$AcceptHeaderRequestCallback.doWithRequest(RestTemplate.java:542)                                               
W/System.err﹕ at org.springframework.web.client.RestTemplate$HttpEntityRequestCallback.doWithRequest(RestTemplate.java:593)                                                 
W/System.err﹕ at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:474)                                                                               
W/System.err﹕ at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:439)                                                                                 
W/System.err﹕ at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:415)                                                                                
W/System.err﹕ at net.gutefrage.android.rest.ScalaRestTemplate$$anonfun$exchange$1.apply(ScalaRestTemplate.scala:22)                                                         
W/System.err﹕ at net.gutefrage.android.rest.ScalaRestTemplate$$anonfun$exchange$1.apply(ScalaRestTemplate.scala:22)                                                         
W/System.err﹕ at scala.util.Try$.apply(Try.scala:161)                                                                                                                       
W/System.err﹕ at net.gutefrage.android.rest.ScalaRestTemplate$$anonfun$genericRestCallForEntity$1.apply(ScalaRestTemplate.scala:31)                                         
W/System.err﹕ at net.gutefrage.android.rest.ScalaRestTemplate$$anonfun$genericRestCallForEntity$1.apply(ScalaRestTemplate.scala:31)                                         
W/System.err﹕ at scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24)                                                                      
W/System.err﹕ at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24)                                                                                
W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)                                                                            
W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)                                                                            
W/System.err﹕ at java.lang.Thread.run(Thread.java:841)                                                                                                                      

最佳答案

我正在运行与您类似的设置,但遇到了同样的问题。在运行 sbt android:run 之前运行 sbt clean 似乎可以解决问题。看起来这是某种编译器问题。

从这里找到:https://github.com/pfn/android-sdk-plugin/issues/57

关于android - "failure in processEncodedAnnotation"在 Android 上使用 Jackson 和 ScalaModule,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23547431/

相关文章:

javascript - 无法使用javascript eval函数解析json字符串

scala - 为什么 Scala 允许嵌套数据结构,如 List 或 Array

android - Google Play 报告不支持的 API 但它在 AppCompat 中

android - GoogleTV Mediaplayer 无法使用传输编码 : chunked 处理 http 数据源

android.database.sqlite.SQLiteException :

javascript - 将数据从 json 传递和使用到 javascript

android - 自定义 AlertDialog 边框

jquery - 即使没有子项,Kendo UI Treeview 也会显示扭曲

parsing - Scala 解析器组合器与 Haskell 的 Parsec 相比如何?

scala - Scala中的数字格式?