天天看點

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下的包名,也就是你的放實體類的包