android代码混淆后gson无法解析问题

  1. 转载:http://blog.csdn.net/goleftgoright/article/details/8555597

  2. -proguard-project.txt  
  3. ##---------------Begin: proguard configuration for Gson  ----------  
  4. # Gson uses generic type information stored in a class file when working with fields. Proguard  
  5. # removes such information by default, so configure it to keep all of it.  
  6. -keepattributes Signature  
  7.   
  8.   
  9. # Gson specific classes  
  10. -keep class com.google.gson.stream.** { *; }  
  11.   
  12.   
  13.   
  14.   
  15. # Application classes that will be serialized/deserialized over Gson  
  16. -keep class com.google.gson.examples.android.model.** { *; }  
  17. #这段话的意思是说,将com.google.gson.examples.android.model这个包下面的所有类
  18. #不进行混淆。很关键!!!!其实,只要将
  19. #java bean即android客户端的需要用gson进行解析的类给注释掉,不进行混淆编译既可以。  
  20.   
  21.   
  22.   
  23. ##---------------End: proguard configuration for Gson  ----------  




问题主要是使用了混淆编译的方式进行apk打包(其中不混淆编译进行apk打包则一切正常),因为客户端代码中的 JavaBean(实体类)的字段名称必须与服务端返回json字符串中的key要一致,才能进行解析,而混淆编
译之后,客户端代码中的JavaBean(实体类)的类名与其字段名称全部变成了a、b、c、d等等字符串,这与服务端返回的json字符串中的key不一致,导致解析失败。所以,解决的办法是:在进行混淆编译进行打包apk的时候,过滤掉存放所有JavaBean(实体类)的包不进行混淆编译

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值