天天看点

Gson的混淆打包问题

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

推荐一篇文章关于mob3.0的集成 http://blog.csdn.net/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下的包名,也就是你的放实体类的包