今天在给代码添加混淆之后,运行app,发现涉及到网络请求的地方页面并没有成功的得到数据更新,查看logcat后发现,网络请求data字段经过解析后,始终返回的是null,让我很是郁闷,之前明明都是正常的呀,于是就估摸着是不是混淆带来的问题,关闭混淆后,重新运行app,又一切正常,因此,问题定位就确定了,肯定是混淆不恰当引起的问题。
根据fastJson的教程,我添加了对应的混淆代码。
-dontwarn com.alibaba.fastjson.**
-keep class com.alibaba.fastjson.** { *; }
-keepattributes Signature
反复搜索,没有问题啊,网络上大家伙也都是这么设置的,那问题出在哪里呢,很是纠结。最后跟朋友讨论,原来需要把实体(entry)禁止混淆,这样就不会有问题了。
-keep public class com.xxx.xxx.bean.** {
public void set(**);
public *** get*();
public *** is*();
}
附上禁止混淆实体的规则,在此做一下记录。也希望能帮助到遇到同样问题的同学
网友评论