转自: http://blog.csdn.net/taotao19880301/article/details/17119249
工程中使用了fastjson,无奈,对工程做混淆的时候总是报错过不去,后来过去了又出现使用fastjson的地方数据不正确的问题,试了好多办法才成功,废话不多说,添加的代码:
- ##—————Begin: proguard configuration <span class="keyword">for</span> fastjson ———-
-
- #-keepnames <span class="keyword">class</span> * <span class="keyword">implements</span> java.io.Serializable
- -keep <span class="keyword">public</span> <span class="keyword">class</span> * <span class="keyword">implements</span> java.io.Serializable {
- <span class="keyword">public</span> *;
- }
- -keepclassmembers <span class="keyword">class</span> * <span class="keyword">implements</span> java.io.Serializable {
- <span class="keyword">static</span> <span class="keyword">final</span> <span class="keyword">long</span> serialVersionUID;
- <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> java.io.ObjectStreamField[] serialPersistentFields;
- <span class="keyword">private</span> <span class="keyword">void</span> writeObject(java.io.ObjectOutputStream);
- <span class="keyword">private</span> <span class="keyword">void</span> readObject(java.io.ObjectInputStream);
- java.lang.Object writeReplace();
- java.lang.Object readResolve();
- }
- -dontwarn android.support.**
- -dontwarn com.alibaba.fastjson.**
-
- -dontskipnonpubliclibraryclassmembers
- -dontskipnonpubliclibraryclasses
-
- -libraryjars libs/fastjson.jar
- -keep <span class="keyword">class</span> com.alibaba.fastjson.** { *; }
-
- -keepclassmembers <span class="keyword">class</span> * {
- <span class="keyword">public</span> <methods>;
- }
-
- ##—————End: proguard configuration <span class="keyword">for</span> fastjson ———-
Gson的混淆:
- ##—————Begin: proguard configuration <span class="keyword">for</span> Gson ———-
- # Gson uses generic type information stored in a <span class="keyword">class</span> file when working with fields. Proguard
- # removes such information by <span class="keyword">default</span>, so configure it to keep all of it.
- -keepattributes Signature
-
- # For using GSON <span class="annotation">@Expose</span> annotation
- -keepattributes *Annotation*
-
- # Gson specific classes
- -keep <span class="keyword">class</span> sun.misc.Unsafe { *; }
- #-keep <span class="keyword">class</span> com.google.gson.stream.** { *; }
-
-
- # Application classes that will be serialized/deserialized over Gson
- <span style=<span class="string">“color:#ff0000;”</span>>-keep <span class="keyword">class</span> cn.howie.base.data.** { *; }
- -keep <span class="keyword">class</span> cn.howie.base.bean.** { *; }</span>
-
-
- ##—————End: proguard configuration <span class="keyword">for</span> Gson ———-
其中红色部分必须为自己项目中的实体类,否则混淆后无法正常显示数据,网上有好多博客都很坑,直接把google文档的代码直接贴出来了,一定要修改红色部分。
💬 评论