首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >杰克逊,科特林和普罗加德

杰克逊,科特林和普罗加德
EN

Stack Overflow用户
提问于 2018-08-17 23:33:52
回答 1查看 1.1K关注 0票数 2

在启用Proguard时,我遇到了Jackson和Kotlin数据类的问题。Jackson版本: 2.9.1 Jackson Converter版本: 2.3.0 Kotlin版本: 1.2.51

这是我的proguard文件:

代码语言:javascript
复制
-ignorewarnings

    # Jackson 2.x
-keepclassmembers class com.jgarin.remote.models.** {
  <init>(...);
  <fields>;
}
-keepclassmembers class * {
     @com.fasterxml.jackson.annotation.JsonCreator *;
     @com.fasterxml.jackson.annotation.JsonProperty *;
}

#Required for Kotlin!
-keep class kotlin.Metadata { *; }
-keep class kotlin.reflect.** { *; }
-keepclassmembers public class com.jgarin.** {
    public synthetic <methods>;
}

-keepattributes SourceFile,LineNumberTable,*Annotation*,EnclosingMethod,Signature,Exceptions,InnerClasses

尽管如此,应用程序还是失败了,抛出了一个异常:

代码语言:javascript
复制
E/RxCallAdapterWrapper: Retrofit exception occurred
    com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot construct instance of `com.jgarin.remote.models.responses.GetVerificationCodeResponse` (although at least one Creator exists): cannot deserialize from Object value (no delegate- or property-based Creator)

堆栈跟踪的其余部分几乎毫无用处。我很确定我漏掉了一些明显的东西。任何帮助都是非常感谢的。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2019-12-13 03:59:15

我认为你的类中需要一个无参数的构造器来允许jackson实例化你的类。如下所示:

代码语言:javascript
复制
class AFHResponse(val MESSAGE: String, val CODE: String, val MIRRORS: Array<Mirror>) {
    private constructor() : this("", "", emptyArray())
}

来自here的示例

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51898715

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档