0

工程带有Fastjson或Gson等的第三方包的混淆配置

转自: http://blog.csdn.net/taotao19880301/article/details/17119249

工程中使用了fastjson,无奈,对工程做混淆的时候总是报错过不去,后来过去了又出现使用fastjson的地方数据不正确的问题,试了好多办法才成功,废话不多说,添加的代码:

  1. ##—————Begin: proguard configuration for fastjson  ———-
  2. #-keepnames class * implements java.io.Serializable
  3. -keep public class * implements java.io.Serializable {
  4.         public *;
  5. }
  6. -keepclassmembers class * implements java.io.Serializable {
  7.     static final long serialVersionUID;
  8.     private static final java.io.ObjectStreamField[] serialPersistentFields;
  9.     private void writeObject(java.io.ObjectOutputStream);
  10.     private void readObject(java.io.ObjectInputStream);
  11.     java.lang.Object writeReplace();
  12.     java.lang.Object readResolve();
  13. }
  14. -dontwarn android.support.**
  15. -dontwarn com.alibaba.fastjson.**
  16. -dontskipnonpubliclibraryclassmembers
  17. -dontskipnonpubliclibraryclasses
  18. -libraryjars libs/fastjson.jar
  19. -keep class com.alibaba.fastjson.** { *; }
  20. -keepclassmembers class * {
  21. public <methods>;
  22. }
  23. ##—————End: proguard configuration for fastjson  ———-

Gson的混淆:

  1. ##—————Begin: proguard configuration for Gson  ———-
  2. # Gson uses generic type information stored in a class file when working with fields. Proguard
  3. # removes such information by default, so configure it to keep all of it.
  4. -keepattributes Signature
  5. # For using GSON @Expose annotation
  6. -keepattributes *Annotation*
  7. # Gson specific classes
  8. -keep class sun.misc.Unsafe { *; }
  9. #-keep class com.google.gson.stream.** { *; }
  10. # Application classes that will be serialized/deserialized over Gson
  11. <span style=“color:#ff0000;”>-keep class cn.howie.base.data.** { *; }
  12. -keep class cn.howie.base.bean.** { *; }</span>
  13. ##—————End: proguard configuration for Gson  ———-

其中红色部分必须为自己项目中的实体类,否则混淆后无法正常显示数据,网上有好多博客都很坑,直接把google文档的代码直接贴出来了,一定要修改红色部分。

天边的星星