我正在使用杰克逊(Jackson(对kotlin数据类进行挑选。我正在使用jackson-kotlin-module
,但杰克逊给我以下错误:
无法构造myClass的实例:找不到合适的构造函数,无法从对象值
中启用。
我已经尝试添加Proguard规则来保留我的课程,它是构造函数,没有任何成功。
如果我添加了一条规则以保持所有kotlin类,则错误消失了。
有什么想法?
经过大量反复试验,我发现proguard正在从我的数据类中剥离kotlin.Metadata
注释。
添加以下规则解决了问题:
-keep class kotlin.Metadata { *; }
我还发现,还需要添加一条规则来保留我的数据类上的合成方法:
-keepclassmembers public class com.mypackage.** {
public synthetic <methods>;
}