Gson的混淆打包问题

本文记录了一次使用Gson进行代码混淆打包时遇到的问题及其解决方案。主要原因是混淆后的字段名与服务端JSON键不匹配,导致解析失败。解决办法是在混淆配置中排除实体类所在的包。

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

今天在Gson打包混淆的时候出现了一个问题,各种空指针异常,以前也没有遇到过这个问题,现在遇到了,这里小记一下,以免以后再犯同样的错误。

推荐一篇文章关于mob3.0的集成 http://blog.youkuaiyun.com/qq_36621990/article/details/74753540 ,朋友的文章。

问题主要是使用了混淆编译的方式进行apk打包(其中不混淆编译进行apk打包则一切正常),因为客户端代码中的JavaBean(实体类)
的字段名称必须与服务端返回json字符串中的key要一致,才能进行解析,而混淆编译之后,客户端代码中的JavaBean(实体类)的类名
与其字段名称全部变成了a、b、c、d等等字符串,这与服务端返回的json字符串中的key不一致,导致解析失败。所以,解决的办法是:
在进行混淆编译进行打包apk的时候,过滤掉存放所有JavaBean(实体类)的包不进行混淆编译。经过测试,一切正常。
#Gson混淆
# removes such information by default, so configure it to keep all of it.
-keepattributes Signature
# Gson specific classes
-keep class sun.misc.Unsafe { *; }
#-keep class com.google.gson.stream.** { *; }
# Application classes that will be serialized/deserialized over Gson
-keep class com.google.gson.examples.android.model.** { *; }
-keep class com.**.**.model.** {*;}
注意最后一行,特别重要一定要换成自己model下的包名,也就是你的放实体类的包

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值