混淆样子

用到了一库,混淆的时候编译会出问题,特此写下我用到过的混淆代码

  • Fragement
#如果引用了v4或者v7包
# Keep the support library
-keep class android.support.v4.** { *; }
-keep interface android.support.v4.** { *; }
# Keep the support library
-keep class android.support.v7.** { *; }
-keep interface android.support.v7.** { *; }
  • ButterKnife 6.0
    -keep class butterknife.** { *; } 
    -dontwarn butterknife.internal.**
    -keep class **$$ViewInjector { *; }
    -keepclasseswithmembernames class * {
            @butterknife.* ;
    }
    -keepclasseswithmembernames class * {
       @butterknife.* ;
    }

-ButterKnife 7.0

-keep class butterknife.** { *; }
-dontwarn butterknife.internal.**
-keep class **$$ViewBinder { *; }
-keepclasseswithmembernames class * {  
   @butterknife.* ;
}
-keepclasseswithmembernames class * {   
 @butterknife.* ;
}
  • ActiveAndroid
 -libraryjars libs/activeandroid.jar
 -dontwarn com.activeandroid.**
 -keep class com.activeandroid.** {*;}
  • EventBus
   -keepclassmembers class ** {
       public void onEvent*(**);
    }
    # Only required if you use AsyncExecutor
    -keepclassmembers class * extends de.greenrobot.event.util.ThrowableFailureEvent {
       (java.lang.Throwable);
    }
  • Gson
    ## GSON 2.2.4 specific rules ##
    # Gson uses generic type information stored in a class file when working with fields. Proguard
    # removes such information by default, so configure it to keep all of it.
    -keepattributes Signature
    # For using GSON @Expose annotation
    -keepattributes *Annotation*
    # 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.sunloto.shandong.bean.** { *; }
  • Retrofit
    -dontwarn retrofit.**
    -keep class retrofit.** { *; }
    -keepattributes Signature
    -keepattributes Exceptions
  • Picasso
  -dontwarn com.squareup.okhttp.**
  • pingyin4j
    -dontwarn net.soureceforge.pinyin4j.**
    -dontwarn demo.**
    -libraryjars libs/pinyin4j-2.5.0.jar
    -keep class net.sourceforge.pinyin4j.** { *;}
    -keep class demo.** { *;}
  • 华为push
    -libraryjars libs/CloudPush_SDK_V2509_hi.jar
    -dontwarn com.huawei.**
    -keep class com.huawei.** {*;}
  • 友盟统计
   -keepclassmembers class * {
        public (org.json.JSONObject);
    }
    -keep public class [您的应用包名].R$*{
        public static final int *;
    }
    -keepclassmembers enum * {
        public static **[] values();
        public static ** valueOf(java.lang.String);
    }
  • 友盟自动更新
    -keep public class [您的应用包名].R$*{
       public static final int *;
    }
    -keep public class com.umeng.fb.ui.ThreadView {
    }
    如果仍存在问题,可以再做如下操作:
    # 添加第三方jar包
    -libraryjars libs/umeng-sdk.jar
    # 以下类过滤不混淆  
    -keep public class * extends com.umeng.**
    # 以下包不进行过滤 
    -keep class com.umeng.** { *; }
  • 友盟用户反馈
    -keepclassmembers class * {
        public (org.json.JSONObject);
    }
    #把[您的应用包名] 替换成您自己的包名,如"com.example.R$*"。
    -keep public class 您的应用包名.R$*{
       public static final int *;
    }
  • 友盟消息推送
    -dontshrink
    -keep,allowshrinking class com.umeng.message.* {
        public ;
        public ;
    }
    -keep,allowshrinking class com.umeng.message.protobuffer.MessageResponse$PushResponse$Info {
        public ;
        public ;
    }
    -keep,allowshrinking class com.umeng.message.protobuffer.MessageResponse$PushResponse$Info$Builder {
        public ;
        public ;
    }
    -keep,allowshrinking class org.android.agoo.impl.*{
        public ;
        public ;
    }
    -keep,allowshrinking class org.android.agoo.service.* {*;}
    -keep,allowshrinking class org.android.spdy.**{*;}
    -keep public class [应用包名].R$*{
        public static final int *;
    }
  • 极光推送
-dontwarn cn.jpush.**
-keep class cn.jpush.** { *; }
  • 其他
# 源文件和行号的信息不混淆
-keepattributes SourceFile,LineNumberTable

你可能感兴趣的:(混淆样子)