# Add project specific ProGuard rules here. # By default, the flags in this file are appended to flags specified # in /Users/jess/Library/Android/sdk/tools/proguard/proguard-android.txt # You can edit the include path and order by changing the proguardFiles # directive in build.gradle. # # For more details, see # http://developer.android.com/guide/developing/tools/proguard.html # Add any project specific keep options here: # If your project uses WebView with JS, uncomment the following # and specify the fully qualified class name to the JavaScript interface # class: #-keepclassmembers class fqcn.of.javascript.interface.for.webview { # public *; #} -optimizationpasses 5 -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -dontskipnonpubliclibraryclassmembers -dontpreverify -verbose -printmapping priguardMapping.txt -optimizations !code/simplification/artithmetic,!field/*,!class/merging/* ################自定义依赖库不被混淆############### -keep class com.zkjc.commnon.** { *; } #自定义控件不参与混淆 ################common############### -keep public class * implements com.jess.arms.integration.ConfigModule #实体类不参与混淆 -keep class com.jess.arms.widget.** { *; } #自定义控件不参与混淆 -keep class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator *; } -keepnames class * implements java.io.Serializable -keepattributes Signature -keep class **.R$* {*;} -ignorewarnings -keepclassmembers class **.R$* { public static ; } -keepclasseswithmembernames class * { # 保持native方法不被混淆 native ; } -keepclassmembers enum * { # 使用enum类型时需要注意避免以下两个方法混淆,因为enum类的特殊性,以下两个方法会被反射调用, public static **[] values(); public static ** valueOf(java.lang.String); } ################support############### -keep class android.support.** { *; } -keep interface android.support.** { *; } -dontwarn android.support.** ################alipay############### -keep class com.alipay.android.app.IAlixPay{*;} -keep class com.alipay.android.app.IAlixPay$Stub{*;} -keep class com.alipay.android.app.IRemoteServiceCallback{*;} -keep class com.alipay.android.app.IRemoteServiceCallback$Stub{*;} -keep class com.alipay.sdk.app.PayTask{ public *;} -keep class com.alipay.sdk.app.AuthTask{ public *;} ################retrofit############### -dontwarn retrofit2.** -keep class retrofit2.** { *; } -keepattributes Signature -keepattributes Exceptions ################butterknife############### -keep class butterknife.** { *; } -dontwarn butterknife.internal.** -keep class **$$ViewBinder { *; } -keepclasseswithmembernames class * { @butterknife.* ; } -keepclasseswithmembernames class * { @butterknife.* ; } ################gson############### -keepattributes Signature -keepattributes *Annotation* -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.** { *; } ################glide############### -keep public class * implements com.bumptech.glide.module.AppGlideModule -keep public class * implements com.bumptech.glide.module.LibraryGlideModule -keep class com.bumptech.glide.** { *; } -keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** { **[] $VALUES; public *; } ################okhttp############### -keepattributes Signature -keepattributes *Annotation* -keep class com.squareup.okhttp.** { *; } -keep interface com.squareup.okhttp.** { *; } -keep class okhttp3.** { *; } -keep interface okhttp3.** { *; } -dontwarn com.squareup.okhttp.** ################androidEventBus############### -keep class org.simple.** { *; } -keep interface org.simple.** { *; } -keepclassmembers class * { @org.simple.eventbus.Subscriber ; } -keepattributes *Annotation* ################EventBus############### -keepclassmembers class * { @org.greenrobot.eventbus.Subscribe ; } -keep class org.greenrobot.eventbus.EventBus { *; } -keep enum org.greenrobot.eventbus.ThreadMode { *; } -keepclassmembers class * extends org.greenrobot.eventbus.util.ThrowableFailureEvent { (java.lang.Throwable); } ################autolayout############### -keep class com.zhy.autolayout.** { *; } -keep interface com.zhy.autolayout.** { *; } ################RxJava and RxAndroid############### -dontwarn org.mockito.** -dontwarn org.junit.** -dontwarn org.robolectric.** -keep class io.reactivex.** { *; } -keep interface io.reactivex.** { *; } -keepattributes Signature -keepattributes *Annotation* -keep class com.squareup.okhttp.** { *; } -dontwarn okio.** -keep interface com.squareup.okhttp.** { *; } -dontwarn com.squareup.okhttp.** -dontwarn io.reactivex.** -dontwarn retrofit.** -keep class retrofit.** { *; } -keepclasseswithmembers class * { @retrofit.http.* ; } -keep class sun.misc.Unsafe { *; } -dontwarn java.lang.invoke.* -keep class io.reactivex.schedulers.Schedulers { public static ; } -keep class io.reactivex.schedulers.ImmediateScheduler { public ; } -keep class io.reactivex.schedulers.TestScheduler { public ; } -keep class io.reactivex.schedulers.Schedulers { public static ** test(); } -keepclassmembers class io.reactivex.internal.util.unsafe.*ArrayQueue*Field* { long producerIndex; long consumerIndex; } -keepclassmembers class io.reactivex.internal.util.unsafe.BaseLinkedQueueProducerNodeRef { long producerNode; long consumerNode; } -keepclassmembers class io.reactivex.internal.util.unsafe.BaseLinkedQueueProducerNodeRef { io.reactivex.internal.util.atomic.LinkedQueueNode producerNode; } -keepclassmembers class io.reactivex.internal.util.unsafe.BaseLinkedQueueConsumerNodeRef { io.reactivex.internal.util.atomic.LinkedQueueNode consumerNode; } -dontwarn io.reactivex.internal.util.unsafe.** ################espresso############### -keep class android.support.test.espresso.** { *; } -keep interface android.support.test.espresso.** { *; } ################annotation############### -keep class android.support.annotation.** { *; } -keep interface android.support.annotation.** { *; } ################RxLifeCycle################# -keep class com.trello.rxlifecycle2.** { *; } -keep interface com.trello.rxlifecycle2.** { *; } ################RxPermissions################# -keep class com.tbruyelle.rxpermissions2.** { *; } -keep interface com.tbruyelle.rxpermissions2.** { *; } ################RxCache################# -dontwarn io.rx_cache2.internal.** -keep class io.rx_cache2.internal.Record { *; } -keep class io.rx_cache2.Source { *; } -keep class io.victoralbertos.jolyglot.** { *; } -keep interface io.victoralbertos.jolyglot.** { *; } ################RxErrorHandler################# -keep class me.jessyan.rxerrorhandler.** { *; } -keep interface me.jessyan.rxerrorhandler.** { *; } ################Timber################# -dontwarn org.jetbrains.annotations.** ################Canary################# -dontwarn com.squareup.haha.guava.** -dontwarn com.squareup.haha.perflib.** -dontwarn com.squareup.haha.trove.** -dontwarn com.squareup.leakcanary.** -keep class com.squareup.haha.** { *; } -keep class com.squareup.leakcanary.** { *; } # Marshmallow removed Notification.setLatestEventInfo() -dontwarn android.app.Notification # FastJson 混淆代码 -dontwarn com.alibaba.fastjson.** -keep class com.alibaba.fastjson.** { *; } -keepattributes Signature -keepattributes *Annotation*