混淆第三方jar包(Gson, greenDao,sharesdk,UIL,高德地图, unity,pinyin4j,async http,JPush,EventBus等)


1、Gson混淆
## ----------------------------------

##   ########## Gson混淆    ##########

## ----------------------------------

-keepattributes Signature

-keep class sun.misc.Unsafe { *; }

-keep class com.google.gson.examples.android.model.** { *; }

 

2、greenDao混淆
# # -------------------------------------------

# #  ######## greenDao混淆  ########## 

# # -------------------------------------------

-libraryjars libs/greendao-1.3.7.jar

-keep class de.greenrobot.dao.** {*;}

-keepclassmembers class * extends de.greenrobot.dao.AbstractDao {
    public static java.lang.String TABLENAME;
}
-keep class **$Properties

 

3、volley混淆 
# # -------------------------------------------

# #  ############### volley混淆  ############### 

# # -------------------------------------------

-keep class com.android.volley.** {*;}

-keep class com.android.volley.toolbox.** {*;}

-keep class com.android.volley.Response$* { *; }

-keep class com.android.volley.Request$* { *; }

-keep class com.android.volley.RequestQueue$* { *; }

-keep class com.android.volley.toolbox.HurlStack$* { *; }

-keep class com.android.volley.toolbox.ImageLoader$* { *; }

 

4、sharesdk混淆
## ----------------------------------

##      sharesdk

## ----------------------------------

-keep class cn.sharesdk.**{*;}

-keep class com.sina.**{*;}

-dontwarn cn.sharesdk.**

 

5、UIL混淆
## ----------------------------------

##      UIL相关

## ----------------------------------

-keep class com.nostra13.universalimageloader.** { *; }

-keepclassmembers class com.nostra13.universalimageloader.** {*;}


6、高德地图sdk混淆
## ----------------------------------

##      高德地图sdk混淆

## ----------------------------------

-libraryjars   libs/android-support-v4.jar

-dontwarn android.support.v4.**   

-keep class android.support.v4.** { *; } 

-keep interface android.support.v4.app.** { *; } 

-keep public class * extends android.support.v4.** 

-keep public class * extends android.app.Fragment

-libraryjars   libs/MapApiLocation.jar

-libraryjars   libs/MapApiSearch.jar

-libraryjars   libs/Android_Map_V2.0.4.jar

-dontwarn com.amap.api.**  

-dontwarn com.a.a.**  

-dontwarn com.autonavi.**  

-keep class com.amap.api.**  {*;}     

-keep class com.autonavi.**  {*;}

-keep class com.a.a.**  {*;}


7、unity混淆(需要修改proguard.jar文件)
## ---------------------------------------------------------------

##      unity混淆(需要修改proguard.jar文件)

## ---------------------------------------------------------------

-libraryjars f:/work_hb_v021/Lib_SocShare_v237_0804/libs/untiy-classes.jar

-dontwarn com.unity3d.player.**   

-dontwarn org.fmod.**  

-keep class com.unity3d.player.**{*;} 

-keep class org.fmod.**{*;} 

-keep public class * extends com.unity3d.player.**

-keep public class * extends org.fmod.**

注:还需要对与unity交互的相关方法或者类(jni)进行混淆配置。


8、内部类或者内部接口类的混淆配置
# # -------------------------------------------

# #  ######## 内部类混淆配置  ########## 

# # -------------------------------------------

-keep class com.manjay.housebox.activity.CityListActivity$*{

        ;

        ;

}

-keepclassmembers class com.manjay.housebox.activity.CityListActivity$*{*;}

 

-keep class com.manjay.housebox.map.MapActivity$*{

        ;

        ;

}

-keepclassmembers class com.manjay.housebox.map.MapActivity$*{*;}


 

9、pinyin4j

-dontwarn net.soureceforge.pinyin4j.**

-dontwarn demo.**

-libraryjars libs/pinyin4j-2.5.0.jar

-keep class net.sourceforge.pinyin4j.** { *;}

-keep class demo.** { *;}

 

10、volley

-libraryjars libs/volley.jar

 

11、async http

-libraryjars libs/android-async-http-1.4.5.jar

 

12、JPush

-libraryjars libs/jpush-sdk-release1.6.3.jar

-dontwarn cn.jpush.**

-keep class cn.jpush.** { *; }

 

13、EventBus

-libraryjars libs/eventbus-1.0.1.jar

-keepclassmembers class ** {

    public void onEvent*(**);

}

-keepclassmembers class ** {

public void xxxxxx(**); //所有监听的方法都要列在这里

}

 

14、SlidingMenu

-dontwarn com.jeremyfeinstein.slidingmenu.lib.**

-keep class com.jeremyfeinstein.slidingmenu.lib.**{*;}

 

15、ActionBarSherlock

-dontwarn com.actionbarsherlock.**

-keep class com.actionbarsherlock.**{*;}
 
17、asmack-android-19-0.8.10.jar 聊天xmpp 第三方jar

-libraryjars libs/asmack-android-19-0.8.10.jar



混淆提示错误

问题:集成了Share SDK以后,混淆出现问题。
回答:混淆的时候需要在混淆脚本中keep Share SDK的包,具体的内容可以参考Sample,下面是主要的一些内容,如:

-keep  class cn. sharesdk. ** { *; }
-keep  class com. sina. ** { *; }

上面的脚本分别keep了Share SDK和新浪微博SSO授权方式所需要的所有jar和源码。

考虑到部分开发者会使用附带Sample中的侧栏控件,那么此时还需要keep这个控件的代码:

-keep  class m. framework. ** { *; }

最后请注意,注册到AuthorizeActivity下用于自定义授权页面的类也是需要keep的,否则Share SDK将找不到它。


参考:http://blog.csdn.net/sharesdk/article/details/11778009

你可能感兴趣的:(android疑难杂症)