所谓本地开发,测试稳得一批,一到线上就抽风就是这样
在 Android 打包成 App release 的时候,配置了混淆功能,导致无法正常解析
主要原因是:客户端中的 JavaBean 与 服务端返回的 JavaBean 的字段 key 需保持一致,才可正常的解析。
而如有使用混淆编译功能的话,它会全部给你改成了 a/b/c/d 类似的字符串,这就与服务端返回的 key 不一致,导致无法进行拆包获取
举例
以下是一个正常的 JSON 格式
{
"msg": "操作成功!t",
"code": 0,
"Data": {
"user": {
"JSESSIONID": "66672c22-fc3c-4f05-a427-675aaafc9d2b",
"id": 1,
"status": 1,
"userName": "payne.zhuang"
}
}
}
被混淆后,获取到的数据变成了如下
{
"c": "cGF5bmUwMC4u"
}
这就懵逼了,混淆成功,导致获取数据取不到。
解决方法
在混淆配置 proguard.cfg 中,Gson 进行过滤本身的 JavaBean class
##-----