我使用Jackson来反序化Kotlin数据类。我正在使用jackson-kotlin-module
,但杰克逊给了我以下错误:
无法构造MyClass的实例:找不到合适的构造函数,无法从Object值反序列化
我尝试添加proguard规则来保存我的课程,而且它的构造函数没有任何成功。
如果我添加规则以保留所有kotlin类,则错误消失。
有什么想法吗?
答案 0 :(得分:5)
经过大量的反复试验后,我发现Proguard正在从我的数据类中删除kotlin.Metadata
注释。
添加以下规则可解决此问题:
-keep class kotlin.Metadata { *; }
我还发现还需要添加一条规则来保持我的数据类的合成方法:
-keepclassmembers public class com.mypackage.** {
public synthetic <methods>;
}