测试环境下json能正常转成bean,正式环境json转成bean后,很多字段为null

在正式环境中,由于代码混淆导致通过bean.getData()获取数据返回null。通过在proguard-rules.pro文件中使用keep语句防止bean被混淆,解决了此问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天写代码的时候发现,在测试环境下进行网络请求,能够成功获取到json,并且能够把json转换成bean,然后通过bean.getData()的方式得到我想要的数据。但是切换到正式环境下,也能成功获取到json,网络请求也是正常的,也不报错,但是在把json转换成bean之后,我通过bean.getData()的方式得到的却是null,很郁闷,查了好几个小时也没有找到原因。

     最后发现,测试环境和正式环境不同的地方除了base_url不一样以外,还有个地方不一样,就是正式环境下是要代码混淆的,测试环境不用混淆。

    在混淆的时候,把bean也给混淆了,所以在正式环境下通过bean.getData()的方式得到的就是null。找到问题,这个bug就好解决了,只要保证我的这个bean不被混淆问题就解决了。

   所以找到项目下的proguard-rules.pro文件,在里面通过keep语句使得你的bean不被混淆,问题也解决了,一般可以把bean放在一个文件夹下,然后keep这个文件夹不被混淆,这样该文件夹下的所有的bean都不会被混淆了。

如果本文对您有所帮助,麻烦点击一下右侧的点赞按钮,谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值