Получение IllegalAccessError для com.fasterxml.jackson.databind.ser.impl.FilteredBeanPropertyWriter только для сборки выпуска - PullRequest
0 голосов
/ 04 июня 2019

Этот сбой происходит только в сборке релиза, отлично работает в сборке отладки. Это происходит при запуске приложения, когда вводятся все зависимости.

 @JvmStatic
 @Provides
 internal fun provideJackson() = ObjectMapper()
           .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
            .registerModule(JodaModule())
            .disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)

Я использую jacksonVersion 2.9.5

// Jackson
'jacksonCore'         : "com.fasterxml.jackson.core:jackson-core:${versions.jacksonVersion}",
'jacksonAnnotations'  : "com.fasterxml.jackson.core:jackson-annotations:${versions.jacksonVersion}",
'jacksonDatabind'     : "com.fasterxml.jackson.core:jackson-databind:${versions.jacksonVersion}",
'jacksonDataTypeJoda' : "com.fasterxml.jackson.datatype:jackson-datatype-joda:${versions.jacksonVersion}",

Я пытался обновить Джексон до 2.9.9, не сработало.

Это крушение, которое я получаю

java.lang.IllegalAccessError: tried to access class l.c.a.e.n$c[] from class com.fasterxml.jackson.databind.ser.impl.FilteredBeanPropertyWriter
        at com.fasterxml.jackson.databind.ser.impl.FilteredBeanPropertyWriter.b(FilteredBeanPropertyWriter.java:34)
        at com.fasterxml.jackson.datatype.joda.cfg.FormatConfig.<clinit>(FormatConfig.java:22)
        at com.fasterxml.jackson.datatype.joda.deser.DateTimeDeserializer.forType(DateTimeDeserializer.java:1)
        at com.fasterxml.jackson.datatype.joda.JodaModule.<init>(JodaModule.java:2)
        at c.f.d.a.d.e.a(CatcherModule.kt:4)

Обесцвеченная трассировка стека выглядит следующим образом

java.lang.IllegalAccessError: tried to access class l.c.a.e.n$c[] from class com.fasterxml.jackson.databind.ser.impl.FilteredBeanPropertyWriter
        at com.fasterxml.jackson.databind.ser.impl.FilteredBeanPropertyWriter.org.joda.time.format.PeriodFormatterBuilder.toFormatter(FilteredBeanPropertyWriter.java:34)
                                                                              org.joda.time.format.ISOPeriodFormat.standard
        at com.fasterxml.jackson.datatype.joda.cfg.FormatConfig.<clinit>(FormatConfig.java:22)
        at com.fasterxml.jackson.datatype.joda.deser.DateTimeDeserializer.forType(DateTimeDeserializer.java:1)
        at com.fasterxml.jackson.datatype.joda.JodaModule.<init>(JodaModule.java:2)

1 Ответ

0 голосов
/ 05 июня 2019

-keepclassmembers class org.joda.time.format.** { *; } решил мою проблему

...