jackson-module-kotlin: Fatal Exception: java.lang.NoSuchMethodError: No virtual method getAnnotationsByType

Fatal Exception: java.lang.NoSuchMethodError: No virtual method getAnnotationsByType(Ljava/lang/Class;)[Ljava/lang/annotation/Annotation; in class Ljava/lang/reflect/Field; or its super classes (declaration of 'java.lang.reflect.Field' appears in /system/framework/core-libart.jar)
       at com.fasterxml.jackson.module.kotlin.KotlinAnnotationIntrospector.hasRequiredMarker(KotlinAnnotationIntrospector.kt:45)
       at com.fasterxml.jackson.module.kotlin.KotlinAnnotationIntrospector.access$hasRequiredMarker(KotlinAnnotationIntrospector.kt:23)
       at com.fasterxml.jackson.module.kotlin.KotlinAnnotationIntrospector$hasRequiredMarker$1.invoke(KotlinAnnotationIntrospector.kt:32)
       at com.fasterxml.jackson.module.kotlin.KotlinAnnotationIntrospector$hasRequiredMarker$1.invoke(KotlinAnnotationIntrospector.kt:23)
       at com.fasterxml.jackson.module.kotlin.ReflectionCache.javaMemberIsRequired(KotlinModule.kt:92)
       at com.fasterxml.jackson.module.kotlin.KotlinAnnotationIntrospector.hasRequiredMarker(KotlinAnnotationIntrospector.kt:26)
       at com.fasterxml.jackson.databind.introspect.AnnotationIntrospectorPair.hasRequiredMarker(AnnotationIntrospectorPair.java:307)
       at com.fasterxml.jackson.databind.introspect.AnnotationIntrospectorPair.hasRequiredMarker(AnnotationIntrospectorPair.java:307)
       at com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder$4.withMember(POJOPropertyBuilder.java:655)
       at com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder$4.withMember(POJOPropertyBuilder.java:652)
       at com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.fromMemberAnnotations(POJOPropertyBuilder.java:1154)
       at com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder._findRequired(POJOPropertyBuilder.java:652)
       at com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.getMetadata(POJOPropertyBuilder.java:220)
       at com.fasterxml.jackson.databind.deser.SettableBeanProperty.<init>(SettableBeanProperty.java:137)
       at com.fasterxml.jackson.databind.deser.impl.FieldProperty.<init>(FieldProperty.java:46)
       at com.fasterxml.jackson.databind.deser.BeanDeserializerFactory.constructSettableProperty(BeanDeserializerFactory.java:803)
       at com.fasterxml.jackson.databind.deser.BeanDeserializerFactory.addBeanProps(BeanDeserializerFactory.java:520)
       at com.fasterxml.jackson.databind.deser.BeanDeserializerFactory.buildBeanDeserializer(BeanDeserializerFactory.java:228)
       at com.fasterxml.jackson.databind.deser.BeanDeserializerFactory.createBeanDeserializer(BeanDeserializerFactory.java:137)
       at com.fasterxml.jackson.databind.deser.DeserializerCache._createDeserializer2(DeserializerCache.java:411)
       at com.fasterxml.jackson.databind.deser.DeserializerCache._createDeserializer(DeserializerCache.java:349)
       at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:264)
       at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(DeserializerCache.java:244)
       at com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(DeserializerCache.java:142)
       at com.fasterxml.jackson.databind.DeserializationContext.findNonContextualValueDeserializer(DeserializationContext.java:467)
       at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.resolve(BeanDeserializerBase.java:473)
       at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:293)
       at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(DeserializerCache.java:244)
       at com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(DeserializerCache.java:142)
       at com.fasterxml.jackson.databind.DeserializationContext.findRootValueDeserializer(DeserializationContext.java:477)
       at com.fasterxml.jackson.databind.ObjectReader._prefetchRootDeserializer(ObjectReader.java:1938)
       at com.fasterxml.jackson.databind.ObjectReader.<init>(ObjectReader.java:189)
       at com.fasterxml.jackson.databind.ObjectMapper._newReader(ObjectMapper.java:658)
       at com.fasterxml.jackson.databind.ObjectMapper.readerFor(ObjectMapper.java:3518)
       at com.garmin.android.apps.gccm.api.converter.JacksonConverterFactory.responseBodyConverter(JacksonConverterFactory.java:72)
       at retrofit2.Retrofit.nextResponseBodyConverter(Retrofit.java:328)
       at retrofit2.Retrofit.responseBodyConverter(Retrofit.java:311)
       at retrofit2.HttpServiceMethod.createResponseConverter(HttpServiceMethod.java:68)
       at retrofit2.HttpServiceMethod.parseAnnotations(HttpServiceMethod.java:46)
       at retrofit2.ServiceMethod.parseAnnotations(ServiceMethod.java:36)
       at retrofit2.Retrofit.loadServiceMethod(Retrofit.java:168)
       at retrofit2.Retrofit$1.invoke(Retrofit.java:147)
       at java.lang.reflect.Proxy.invoke(Proxy.java:393)

version 2.9.8

I think this error is bron on version 2.9.7 , I have tested it on different android version and it is only crash below android 7.0 . it`s means that if android os version is 7.0+ this library is work good if not the error of above will shown.

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Reactions: 9
  • Comments: 21 (11 by maintainers)

Commits related to this issue

Most upvoted comments

@starkej2 ^^

Also #167 was fixed a long time ago, is it not in a current release?
#87 is on the 2.10 branch and should be in a current snapshot if recent.

Should be snapshot release 2.10.1-SNAPSHOT

@tonymanou, did you mean 2.9.6? Version 1.9.6 does not exist but 2.9.6 worked for me.

In order to make jackson-module-kotlin work on Android < API 24 you must stay on version ~1.9.6~ edit: 2.9.6, see #176