混淆后实体类转Json报错

来源:互联网 发布:苹果在线看岛片软件 编辑:程序博客网 时间:2024/06/06 07:47

先贴解决方案,在proguard里面加如下代码即可,参考网站:https://stackoverflow.com/questions/27687128/how-to-setup-proguard-for-jackson-json-processor

-keepattributes *Annotation*,EnclosingMethod,Signature-keepnames class com.fasterxml.jackson.** { *; } -dontwarn com.fasterxml.jackson.databind.** -keep class org.codehaus.** { *; } -keepclassmembers public final enum org.codehaus.jackson.annotate.JsonAutoDetect$Visibility { public static final org.codehaus.jackson.annotate.JsonAutoDetect$Visibility *; }-keep public class your.class.** { public void set*(***); public *** get*();}

混淆后,报错信息如下,供大家参考

java.lang.NoSuchFieldErrorat libcore.reflect.AnnotationAccess.decodeValue(AnnotationAccess.java:688)at libcore.reflect.AnnotationAccess.toAnnotationInstance(AnnotationAccess.java:663)at libcore.reflect.AnnotationAccess.toAnnotationInstance(AnnotationAccess.java:641)at libcore.reflect.AnnotationAccess.getDeclaredAnnotation(AnnotationAccess.java:170)at libcore.reflect.AnnotationAccess.getAnnotation(AnnotationAccess.java:72)at java.lang.Class.getAnnotation(Class.java:359)at com.fasterxml.jackson.databind.introspect.VisibilityChecker$Std.<clinit>(VisibilityChecker.java:172)at com.fasterxml.jackson.databind.introspect.VisibilityChecker$Std.defaultInstance(VisibilityChecker.java:180)at com.fasterxml.jackson.databind.ObjectMapper.<clinit>(ObjectMapper.java:196)at com.android.terminalmaintenance.common.utils.k.a(Tools.java:1912)at com.android.terminalmaintenance.options.monitor.a.a.a.c(CommonFlow.java:547)at com.android.terminalmaintenance.options.monitor.flow.FlowReadSubmitActivity.a(FlowReadSubmitActivity.java:145)at com.android.terminalmaintenance.options.monitor.flow.FlowReadSubmitActivity.onClick(FlowReadSubmitActivity.java:121)at android.view.View.performClick(View.java:5207)at android.view.View$PerformClick.run(View.java:21177)at android.os.Handler.handleCallback(Handler.java:742)at android.os.Handler.dispatchMessage(Handler.java:95)at android.os.Looper.loop(Looper.java:154)at android.app.ActivityThread.main(ActivityThread.java:5544)at java.lang.reflect.Method.invoke(Native Method)at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:629)Caused by: java.lang.NoSuchFieldException: No field PUBLIC_ONLY in class Lcom/fasterxml/jackson/annotation/JsonAutoDetect$Visibility; (declaration of 'com.fasterxml.jackson.annotation.JsonAutoDetect$Visibility' appears in /data/app/com.android.terminalmaintenance-2/base.apk)at java.lang.Class.getDeclaredField(Native Method)at libcore.reflect.AnnotationAccess.decodeValue(AnnotationAccess.java:685)... 21 morejava.lang.NoSuchFieldException: No field PUBLIC_ONLY in class Lcom/fasterxml/jackson/annotation/JsonAutoDetect$Visibility; (declaration of 'com.fasterxml.jackson.annotation.JsonAutoDetect$Visibility' appears in /data/app/com.android.terminalmaintenance-2/base.apk)at java.lang.Class.getDeclaredField(Native Method)at libcore.reflect.AnnotationAccess.decodeValue(AnnotationAccess.java:685)at libcore.reflect.AnnotationAccess.toAnnotationInstance(AnnotationAccess.java:663)at libcore.reflect.AnnotationAccess.toAnnotationInstance(AnnotationAccess.java:641)at libcore.reflect.AnnotationAccess.getDeclaredAnnotation(AnnotationAccess.java:170)at libcore.reflect.AnnotationAccess.getAnnotation(AnnotationAccess.java:72)at java.lang.Class.getAnnotation(Class.java:359)at com.fasterxml.jackson.databind.introspect.VisibilityChecker$Std.<clinit>(VisibilityChecker.java:172)at com.fasterxml.jackson.databind.introspect.VisibilityChecker$Std.defaultInstance(VisibilityChecker.java:180)at com.fasterxml.jackson.databind.ObjectMapper.<clinit>(ObjectMapper.java:196)at com.android.terminalmaintenance.common.utils.k.a(Tools.java:1912)at com.android.terminalmaintenance.options.monitor.a.a.a.c(CommonFlow.java:547)at com.android.terminalmaintenance.options.monitor.flow.FlowReadSubmitActivity.a(FlowReadSubmitActivity.java:145)at com.android.terminalmaintenance.options.monitor.flow.FlowReadSubmitActivity.onClick(FlowReadSubmitActivity.java:121)at android.view.View.performClick(View.java:5207)at android.view.View$PerformClick.run(View.java:21177)at android.os.Handler.handleCallback(Handler.java:742)at android.os.Handler.dispatchMessage(Handler.java:95)at android.os.Looper.loop(Looper.java:154)at android.app.ActivityThread.main(ActivityThread.java:5544)at java.lang.reflect.Method.invoke(Native Method)at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:629)






原创粉丝点击