2017-06-08 2 views
1

Ich benutze Jackson, um Kotlin-Datenklassen zu deserialisieren. Ich verwende den jackson-kotlin-module aber Jackson mir folgende Fehler geben:Jackson kann die Kotlin-Datenklassen nicht deserialisieren

Can not construct instance of MyClass: no suitable constructor found, can not deserialize from Object value

Ich habe versucht proguard Regeln hinzufügen meine Klassen zu halten, und es Konstruktor ohne Erfolg.

Wenn ich eine Regel hinzufügen, um alle Kotlin-Klassen zu behalten, verschwindet der Fehler.

Irgendwelche Ideen?

+0

Ihre Frage nicht über genügend Informationen für andere, um das Problem zu lösen, kein Codebeispiel oder keine Proguard-Konfiguration. –

Antwort

3

Nach viel Versuch und Irrtum, entdeckte ich, dass Proguard kotlin.Metadata Annotationen von meinen Datenklassen abstreifte.

die folgende Regel Hinzufügen behebt das Problem:

-keep class kotlin.Metadata { *; } 

Ich fand auch eine Regel hinzufügen Synthesemethoden auf meine Datenklassen zu halten wurde auch gebraucht:

-keepclassmembers public class com.mypackage.** { 
    public synthetic <methods>; 
} 
+0

Welches Build-Tool verwenden Sie (Gradle/Maven)? Wo haben Sie diese Regeln hinzugefügt? –

Verwandte Themen