今天在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下的包名,也就是你的放实体类的包