混淆后实体类转Json报错

 
 

先贴解决方案,在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.NoSuchFieldError
	at 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 more
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)
	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)






猜你喜欢

转载自blog.csdn.net/ylj15503473366/article/details/73527443