27
2017
09

【Android】混淆导致json解析出错

Android Strudio推出Gson Format插件以后,Gson Format可以为开发者创建我们的json文件对应的java对象模板,这使得Json解析显得特别简单,大大降低了编程人员的时间成本。但是一不小心就会出现这样的问题:

在debug状态编译的时候程序按照我们设想的去解析数据,但是切换到release打包生成的app却解析得到错误的json

其实是因为在打release包的时候,我们通常需要用到混淆操作,在混淆的时候,如果没有在混淆文件中keep掉我们的JavaBean类,那么这个类中的变量可能会被混淆成其他内容,导致在json解析的时候难以准确解析。
解决的办法是找到工程目录下的 proguard-project.txt 混淆配置文件,在文件中添加不需要混淆的类或者包名即可,取消混淆的命令如下:

-keep class com.aaa.bbb.** {*;} //取消com.aaa.bbb这个包名路径下所有类和子包的混淆
-keep public class com.aa.bb.Test { *; }//取消混淆Test类
-keep public class * extends com.a.b.test { *; }//取消混淆Test类的子类
-keep public class **.*model*.** {*;}//取消所有类名中包含了“model”的类及其成员的混淆
-keep class * implements com.aa.bb.lgInterface { *; }//取消lgInterface接口实现类的混淆
-keep class com.a.b.Test$* {
      *;
}//取消某个类的内部类的混淆

感谢阅读!

上一篇:自定义View从入门到懵逼系列(下) 下一篇:React Native scrollView下拉布局偏移