# Add project specific ProGuard rules here. # You can control the set of applied configuration files using the # proguardFiles setting in build.gradle. # # For more details, see # http://developer.android.com/guide/developing/tools/proguard.html # 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 *; #} # Uncomment this to preserve the line number information for # debugging stack traces. #-keepattributes SourceFile,LineNumberTable # If you keep the line number information, uncomment this to # hide the original source file name. #-renamesourcefileattribute SourceFile -keepclassmembers class fqcn.of.javascript.interface.for.webview { public *; } #指定代码的压缩级别 -optimizationpasses 5 #包明不混合大小写 -dontusemixedcaseclassnames #不去忽略非公共的库类 -dontskipnonpubliclibraryclasses #优化 不优化输入的类文件 -dontoptimize #预校验 -dontpreverify #混淆时是否记录日志 -verbose # 混淆时所采用的算法 -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* #忽略警告 -ignorewarning -keep public class * extends android.app.Fragment -keep public class * extends android.app.Activity -keep public class * extends android.app.Application -keep public class * extends android.app.Service -keep public class * extends android.content.BroadcastReceiver -keep public class * extends android.content.ContentProvider -keep public class * extends android.app.backup.BackupAgentHelper -keep public class * extends android.preference.Preference -keep class com.bikao.cleanmark.view.** { *; } -keep class com.coremedia.iso.** {*;} -keep class nu.xom.** {*;} -keep class com.googlecode.mp4parser.** {*;} -keep class com.mp4parser.** {*;} -keep class com.coremedia.iso.** {*;} -keep class org.aspectj.** {*;} -keep class jp.co.recruit_lifestyle.android.floatingview.** {*;} # 如果有引用v4包可以添加下面这行 -keep class android.support.v4.**{ *;} # 如果引用了v4或者v7包 -dontwarn android.support.** # 保持 native 方法不被混淆 -keepclasseswithmembernames class * { native ; } -keep class com.bikao.dkplayer.** {*;} # 保护注解 -keepattributes *Annotation* -keep class * extends java.lang.annotation.Annotation {*;} # 泛型与反射 -keepattributes Signature -keepattributes EnclosingMethod # 不混淆内部类 -keepattributes InnerClasses # gson -dontwarn com.google.** -keep class com.google.gson.** {*;} #保持枚举 enum 类不被混淆 -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } # otto混淆规则 -keepattributes *Annotation* -keepclassmembers class ** { @com.squareup.otto.Subscribe public *; @com.squareup.otto.Produce public *; } #所有bean都不要混淆 -keep class * implements java.io.Serializable {*;} -keepclassmembers class * implements java.io.Serializable {*;} -keep class * implements java.lang.Comparable {*;} -keepclassmembers class * implements java.lang.Comparable {*;} -keep class com.bikao.cleanmark.bean.** { *; } #一般网络层都不进行混淆 -keep class com.xxx.xxx.http.** {*;} #如果你遇到一些控件无法Inflate,报NullPointException,比如ListView,NavigationView等等 #-keep class org.xmlpull.v1.** {*;} # OkHttp -dontwarn com.squareup.okhttp.** -keep class com.squareup.okhttp.** {*;} -keep interface com.squareup.okhttp.** {*;} -dontwarn okio.** # Realm -keep class io.realm.annotations.RealmModule -keep @io.realm.annotations.RealmModule class * -keep class io.realm.internal.Keep -keep @io.realm.internal.Keep class * { *; } -dontwarn javax.** -dontwarn io.realm.** #友盟 -keep class com.umeng.** {*;} -keep class com.uc.** {*;} -keepclassmembers class * { public (org.json.JSONObject); } -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } -keep class com.zui.** {*;} -keep class com.miui.** {*;} -keep class com.heytap.** {*;} -keep class a.** {*;} -keep class com.vivo.** {*;} -keep public class com.adwl.location.R$*{ public static final int *; } #lambda -dontwarn java.lang.invoke.* -dontwarn **$$Lambda$* #基线包使用,生成mapping.txt -printmapping mapping.txt #生成的mapping.txt在app/buidl/outputs/mapping/release路径下,移动到/app路径下 #修复后的项目使用,保证混淆结果一致 #-applymapping mapping.txt #Glide -keep public class * implements com.bumptech.glide.module.GlideModule -keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** { **[] $VALUES; public *; } -keep class com.bytedance.sdk.openadsdk.** { *; } -keep public interface com.bytedance.sdk.openadsdk.downloadnew.** {*;} -keep class com.pgl.sys.ces.* {*;} # for DexGuard only #-keepresourcexmlelements manifest/application/meta-data@value=GlideModule #butterknife -dontwarn butterknife.internal.** # -keep class butterknife.** { *; } # -dontwarn butterknife.internal.** # -keep class **$$ViewBinder { *; } # -keepclasseswithmembernames class * { @butterknife.* ;} # -keepclasseswithmembernames class * { @butterknife.* ;} #SweetAlert -keep class cn.pedant.SweetAlert.**{*;} -keep class cn.pedant.SweetAlert.Rotate3dAnimation { public (...); } #retrofit2 # Platform calls Class.forName on typeswhich do not exist on Android to determine platform. -dontnote retrofit2.Platform # Platform used when running on RoboVM oniOS. Will not be used at runtime. -dontnote retrofit2.Platform$IOS$MainThreadExecutor # Platform used when running on Java 8 VMs.Will not be used at runtime. -dontwarn retrofit2.Platform$Java8 # Retain generic type information for useby reflection by converters and adapters. -keepattributes Signature # Retain declared checked exceptions foruse by a Proxy instance. -keepattributes Exceptions # Retrofit -dontwarn retrofit2.** -keep class retrofit2.** { *; } # Retrolambda -dontwarn java.lang.invoke.* # RxJava RxAndroid -dontwarn sun.misc.** -keepclassmembers class rx.internal.util.unsafe.*ArrayQueue*Field* { long producerIndex; long consumerIndex; } -keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef { rx.internal.util.atomic.LinkedQueueNode producerNode; } -keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueConsumerNodeRef { rx.internal.util.atomic.LinkedQueueNode consumerNode; } # EventBus混淆 -keepclassmembers class ** { public void onEvent*(***); } # Only required if you use AsyncExecutor -keepclassmembers class * extends de.greenrobot.event.util.ThrowableFailureEvent { public (java.lang.Throwable); } # Don't warn for missing support classes -dontwarn de.greenrobot.event.util.*$Support -dontwarn de.greenrobot.event.util.*$SupportManagerFragment -keep class com.gyf.immersionbar.* {*;} -dontwarn com.gyf.immersionbar.** -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } -keep public class com.bikao.cleanmark.R$*{ public static final int *; } #ijk #ijkplayer -keep class tv.danmaku.ijk.media.player.** {*;} -keep class tv.danmaku.ijk.media.player.IjkMediaPlayer{*;} -keep class tv.danmaku.ijk.media.player.ffmpeg.FFmpegApi{*;} # //smack -keep class org.jxmpp.** {*;} -keep class de.measite.** {*;} -keep class org.jivesoftware.** {*;} -keep class org.xmlpull.** {*;} -dontwarn org.xbill.** -keep class org.xbill.** {*;} # //eventbus -keepattributes *Annotation* -keepclassmembers class ** { @org.greenrobot.eventbus.Subscribe ; } -keep enum org.greenrobot.eventbus.ThreadMode { *; } # Only required if you use AsyncExecutor -keepclassmembers class * extends org.greenrobot.eventbus.util.ThrowableFailureEvent { (java.lang.Throwable); } -keep,allowobfuscation @interface com.facebook.common.internal.DoNotStrip -keep @com.facebook.common.internal.DoNotStrip class * -keepclassmembers class * { @com.facebook.common.internal.DoNotStrip *; } # Keep native methods -keepclassmembers class * { native ; } -dontwarn okio.** -dontwarn com.squareup.okhttp.** -dontwarn okhttp3.** -dontwarn javax.annotation.** -dontwarn com.android.volley.toolbox.** -dontwarn com.facebook.infer.** -keep class com.iflytek.**{*;} #UShare -dontshrink -dontoptimize -dontwarn com.google.android.maps.** -dontwarn android.webkit.WebView -dontwarn com.umeng.** -dontwarn com.tencent.weibo.sdk.** -dontwarn com.facebook.** -keep public class javax.** -keep public class android.webkit.** -dontwarn android.support.v4.** -keep enum com.facebook.** -keepattributes Exceptions,InnerClasses,Signature -keepattributes *Annotation* -keepattributes SourceFile,LineNumberTable -keep public interface com.facebook.** -keep public interface com.tencent.** -keep public interface com.umeng.socialize.** -keep public interface com.umeng.socialize.sensor.** -keep public interface com.umeng.scrshot.** -keep public class com.umeng.socialize.* {*;} -keep class com.facebook.** -keep class com.facebook.** { *; } -keep class com.umeng.scrshot.** -keep public class com.tencent.** {*;} -keep class com.umeng.socialize.sensor.** -keep class com.umeng.socialize.handler.** -keep class com.umeng.socialize.handler.* -keep class com.umeng.weixin.handler.** -keep class com.umeng.weixin.handler.* -keep class com.umeng.qq.handler.** -keep class com.umeng.qq.handler.* -keep class UMMoreHandler{*;} -keep class com.tencent.mm.sdk.modelmsg.WXMediaMessage {*;} -keep class com.tencent.mm.sdk.modelmsg.** implements com.tencent.mm.sdk.modelmsg.WXMediaMessage$IMediaObject {*;} -keep class im.yixin.sdk.api.YXMessage {*;} -keep class im.yixin.sdk.api.** implements im.yixin.sdk.api.YXMessage$YXMessageData{*;} -keep class com.tencent.mm.sdk.** { *; } -keep class com.tencent.mm.opensdk.** { *; } -keep class com.tencent.wxop.** { *; } -keep class com.tencent.mm.sdk.** { *; } -keep class com.umeng.** {*;} -dontwarn twitter4j.** -keep class twitter4j.** { *; } -keep class com.tencent.** {*;} -dontwarn com.tencent.** -keep class com.kakao.** {*;} -dontwarn com.kakao.** -keep public class com.umeng.com.umeng.soexample.R$*{ public static final int *; } -keep public class com.linkedin.android.mobilesdk.R$*{ public static final int *; } -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } -keep class com.tencent.open.TDialog$* -keep class com.tencent.open.TDialog$* {*;} -keep class com.tencent.open.PKDialog -keep class com.tencent.open.PKDialog {*;} -keep class com.tencent.open.PKDialog$* -keep class com.tencent.open.PKDialog$* {*;} -keep class com.umeng.socialize.impl.ImageImpl {*;} -keep class com.sina.** {*;} -dontwarn com.sina.** -keep class com.alipay.share.sdk.** { *; } -keep class * implements android.os.Parcelable {*;} -keepnames class * implements android.os.Parcelable { public static final ** CREATOR; } -keepclassmembers class * implements android.os.Parcelable {*;} -keep class com.linkedin.** { *; } -keep class com.android.dingtalk.share.ddsharemodule.** { *; } -keepattributes Signature #UShare # 请开发者根据自己实际情况给第三方库的添加相应的混淆设置 -dontwarn com.androidquery.** -keep class com.androidquery.** { *;} -dontwarn tv.danmaku.** -keep class tv.danmaku.** { *;} -dontwarn androidx.** # 如果使用了tbs版本的sdk需要进行以下配置 -keep class com.tencent.smtt.** { *; } -dontwarn dalvik.** -dontwarn com.tencent.smtt.** -keep class com.google.android.exoplayer2.** { *; } -dontwarn com.google.android.exoplayer2.** -keep class com.aplayer.** { *; } -dontwarn com.aplayer.** -dontwarn com.tencent.bugly.** -keep public class com.tencent.bugly.**{*;} -keep class com.lljjcoder.**{ *; } -dontwarn demo.** -keep class demo.**{*;} -dontwarn net.sourceforge.pinyin4j.** -keep class net.sourceforge.pinyin4j.**{*;} -keep class net.sourceforge.pinyin4j.format.**{*;} -keep class net.sourceforge.pinyin4j.format.exception.**{*;} -keepattributes *Annotation* -keepattributes Exceptions -keepattributes InnerClasses -keepattributes Signature -keepattributes SourceFile,LineNumberTable -keep class com.bytedance.sdk.openadsdk.** { *; } -keep class com.bytedance.frameworks.** { *; } -keep class ms.bd.c.Pgl.**{*;} -keep class com.bytedance.mobsec.metasec.ml.**{*;} -keep class com.ss.android.**{*;} -keep class com.bytedance.embedapplog.** {*;} -keep class com.bytedance.embed_dr.** {*;} -keep class com.bykv.vk.** {*;} -ignorewarnings