0
我已启用Proguard并为我正在使用的所有库添加适当的proguard规则。应用Proguard后,杰克逊跳过解析JSON响应与根
我使用Retrofit进行网络调用和Jackson转换器来解析响应。
我的Json响应具有根值,用Jackson解析此设置我使用设置SerializationFeature.WRAP_ROOT_VALUE
和DeserializationFeature.UNWRAP_ROOT_VALUE
。一切工作,直到我申请proguard。
没有给出任何解析异常,这些字段被解析为空值。
我使用了杰克逊的Proguard的规则是
-keepnames class com.fasterxml.jackson.** { *; }
-dontwarn com.fasterxml.jackson.databind.*
-keepattributes *Annotation*,EnclosingMethod,Signature
-keep class org.codehaus.** { *; }
-keepclassmembers public final enum
org.codehaus.jackson.annotate.JsonAutoDetect$Visibility {
public static final org.codehaus.jackson.annotate.JsonAutoDetect$Visibility *;
}
-keepclasseswithmembers class com.jombay.vger.rx.resources.** {
public protected private <init>(...);
public void set(*);
public ** get*();
}
-keepclasseswithmembers public class com.jombay.vger.retrofit.resources.** {
public protected private <init>(...);
public void set(*);
public ** get*();
}
-keepclasseswithmembers public class com.jombay.vger.utils.** {
public protected private <init>(...);
}
-keepclassmembers class * {
@org.codehaus.jackson.annotate.* *;
}
-keep class com.fasterxml.jackson.databind.ObjectMapper {*;}
-keep class com.fasterxml.jackson.databind.ObjectWriter {*;}
我想出了解决很多其他问题后,此配置。
无法在此处进行调试和理解问题。
@ T-neidhart:非常感谢它的工作就像一个魅力 –