Android之-android-support-v4.jar的混淆问题


今天在打包混淆的时候,因为使用了android-support-v4而发生混淆错误,无法打包,网上google了一下,没发现可用的,就东拼西凑的把网上各个版本拼凑了下,拼凑出下面自己可用通过的代码。
在proguard.cfg中加入以下代码:

1
 -libraryjars   libs/android-support-v4.jar //这里根据你的jar包的路径做改动
 
    
2
 -dontwarn android.support.v4.** 
 
    
3
 -keep class android.support.v4.** { *; }
 
    
4
 -keep interface android.support.v4.app.** { *; }
 
    
5
 -keep public class * extends android.support.v4.**
 
    
6
 -keep public class * extends android.app.Fragment



Android之-Gson混淆问题



google出的Gson个人感觉在处理json和对象之间的转换方面还是相当简便的。不过在混淆的时候就碰到了点问题,遇到嵌套的json数据无法成功转换成正确的对象。这个问题折腾了自己好几天,还特意新建了个项目来确定原因。因为电脑不算很好,签名混淆打包比较费时,4,5分钟的样子才能打好,具体没计算过,不过大概范围就这样,所以导致调试花了蛮久的。今天在搜索中文相关问题找不到结果的情况下只搜索英文,终于找到了解决方法。方法就在google的gson的svn里的example里,真是要吐血啊。
地址:http://code.google.com/p/google-gson/source/browse/trunk/examples/android-proguard-example/proguard.cfg
主要代码段如下:

01
 ##---------------Begin: proguard configuration for Gson  ----------
 
    
02
 # Gson uses generic type information stored in a class file when working with fields. Proguard
 
    
03
 # removes such information by default, so configure it to keep all of it.
 
    
04
 -keepattributes Signature
 
    
05
  
 
    
06
 # For using GSON @Expose annotation
 
    
07
 -keepattributes *Annotation*
 
    
08
  
 
    
09
 # Gson specific classes
 
    
10
 -keep class sun.misc.Unsafe { *; }
 
    
11
 #-keep class com.google.gson.stream.** { *; }
 
    
12
  
 
    
13
 # Application classes that will be serialized/deserialized over Gson
 
    
14
 -keep class com.google.gson.examples.android.model.** { *; }
 
    
15
  
 
    
16
 ##---------------End: proguard configuration for Gson  ----------

如果用了这个还不行的话,可以去上面的网址里看下完整的。
反正我是加上之后应用可以正常开始跑了。