# 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 -optimizationpasses 5 -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -dontpreverify -verbose -ignorewarnings -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* # 保留行号 -keepattributes SourceFile,LineNumberTable #-dontwarn #//dontwarn去掉警告 #-dontskipnonpubliclibraryclassmembers #-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.preference.Preference #-keep public class * extends android.support.v4.** -keep public class com.android.vending.licensing.ILicensingService -keepclasseswithmembernames class * { native ; } #-keepclasseswithmembernames class * { # public (android.content.Context, android.util.AttributeSet); #} #-keepclasseswithmembernames class * { # public (android.content.Context, android.util.AttributeSet, int); #} #----------------enum----------------- -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } #----------------Parcelable----------------- -keepclassmembers class * implements android.os.Parcelable { static ** CREATOR; ; ; } -keepnames class * implements android.os.Parcelable { public static final ** CREATOR; } -keep class * implements java.io.Serializable { *; } ##---------------Begin: proguard configuration for Gson ---------- # Gson specific classes -dontwarn sun.misc.** -keep class com.google.gson.**{*;} #-keep class com.google.gson.stream.** { *; } # Application classes that will be serialized/deserialized over Gson -keep class com.google.gson.examples.android.model.** { *; } # Prevent proguard from stripping interface information from TypeAdapterFactory, # JsonSerializer, JsonDeserializer instances (so they can be used in @JsonAdapter) -keep class * implements com.google.gson.TypeAdapterFactory -keep class * implements com.google.gson.JsonSerializer -keep class * implements com.google.gson.JsonDeserializer -keepattributes Signature -keepattributes *Annotation* #----------------android----------------- -dontwarn android.** -keep class android.** { *;} #----------------v4----------------- -dontwarn android.support.v4.** -keep class android.support.v4.** { *; } #----------------v7----------------- -dontwarn android.support.v7.** -keep class android.support.v7.** { *;} #----------------EventBus事件巴士----------------- -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); } #-------------云信相关的混淆配置------------ -dontwarn com.netease.** -keep class com.netease.** {*;} # Presenter 相关 -keep class com.yizhuan.erban.base.** { *; } -keep public class * extends com.yizhuan.erban.base.BaseMvpPresenter -keep public class * extends com.yizhuan.xchat_android_library.base.AbstractMvpPresenter # 云信自定义 ViewHolder 配置 -dontwarn com.yizhuan.erban.ui.im.recent.holder.** -keep class com.yizhuan.erban.ui.im.recent.holder.** {*;} -keep class com.yizhuan.erban.ui.im.chat.** {*;} -keep class com.yizhuan.erban.luckymoney.viewholder.** {*;} -keep class com.yizhuan.erban.share.viewholder.** {*;} -keep class com.yizhuan.erban.public_chat_hall.msg.viewholder.** {*;} -keep class com.yizhuan.erban.module_hall.im.msgholder.** {*;} -keep class com.yizhuan.tutu.mentoring_relationship.viewholder.** {*;} -keep public class * extends com.netease.nim.uikit.common.ui.recyclerview.holder.RecyclerViewHolder {*;} -keep public class * extends com.netease.nim.uikit.business.session.viewholder.MsgViewHolderBase {*;} #如果你使用全文检索插件,需要加入 -dontwarn org.apache.lucene.** -keep class org.apache.lucene.** {*;} # 云信集成小米推送 -dontwarn com.xiaomi.push.** -keep class com.xiaomi.** {*;} -keep class io.realm.** # 云信集成华为推送 -ignorewarnings -keepattributes *Annotation* -keepattributes Exceptions -keepattributes InnerClasses -keepattributes Signature -keepattributes SourceFile,LineNumberTable -keep class com.hianalytics.android.**{*;} -keep class com.huawei.updatesdk.**{*;} -keep class com.huawei.hms.**{*;} -keep class com.huawei.agconnect.**{*;} # hmscore-support: remote transport -keep class * extends com.huawei.hms.core.aidl.IMessageEntity { *; } # hmscore-support: remote transport -keepclasseswithmembers class * implements com.huawei.hms.support.api.transport.DatagramTransport { (...); } # manifest: provider for updates -keep public class com.huawei.hms.update.provider.UpdateProvider { public *; protected *; } # 云信集成魅族推送 -dontwarn com.meizu.cloud.** -keep class com.meizu.cloud.** {*;} #-------------云信相关的混淆配置------------ #-------------TakePhoto的混淆配置------------ -keep class com.jph.takephoto.** { *; } -dontwarn com.jph.takephoto.** -keep class com.darsh.multipleimageselect.** { *; } -dontwarn com.darsh.multipleimageselect.** -keep class com.soundcloud.android.crop.** { *; } -dontwarn com.soundcloud.android.crop.** #-------------TakePhoto的混淆配置------------ #腾讯崩溃收集 -dontwarn com.tencent.bugly.** -keep public class com.tencent.bugly.**{*;} # glide4.0 -keep public class * implements com.bumptech.glide.module.GlideModule -keep public class * extends com.bumptech.glide.module.AppGlideModule -keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** { **[] $VALUES; public *; } # for DexGuard only #-keepresourcexmlelements manifest/application/meta-data@value=GlideModule # BaseAdapter -keep class com.chad.library.adapter.** { *; } -keep class com.chad.library.adapter.base.entity.MultiItemEntity -keep public class * extends com.chad.library.adapter.base.BaseQuickAdapter -keep public class * extends com.chad.library.adapter.base.BaseViewHolder -keepclassmembers class **$** extends com.chad.library.adapter.base.BaseViewHolder { (...); } -dontwarn com.yizhuan.erban.bindadapter.** -keep class com.yizhuan.erban.bindadapter.** {*;} # Ping++ 混淆过滤 -dontwarn com.pingplusplus.** -keep class com.pingplusplus.** {*;} # 支付宝混淆过滤 -dontwarn com.alipay.** -keep class com.alipay.** {*;} # 微信或QQ钱包混淆过滤 -dontwarn com.tencent.** -keep class com.tencent.** {*;} # 银联支付混淆过滤 #-dontwarn com.unionpay.** #-keep class com.unionpay.** {*;} # ## 招行一网通混淆过滤 #-keepclasseswithmembers class cmb.pb.util.CMBKeyboardFunc { # public (android.app.Activity); # public boolean HandleUrlCall(android.webkit.WebView,java.lang.String); # public void callKeyBoardActivity(); #} # 内部WebView混淆过滤 -keepclassmembers class * { @android.webkit.JavascriptInterface ; } # TODO 网络加载 一些业务bean gson 时候混淆问题 -keep class org.json.** {*;} -dontwarn com.yizhuan.xchat_android_core.** -keep class com.yizhuan.xchat_android_core.** {*;} #百度统计 -keep class com.baidu.bottom.** { *; } -keep class com.baidu.kirin.** { *; } -keep class com.baidu.mobstat.** { *; } -keep class io.agora.** { *; } # 七牛 -keep class com.qiniu.**{*;} -keep class com.qiniu.**{public ();} -ignorewarnings # shareSdk -keep class cn.sharesdk.** -keep class com.mob.** -keep class cn.sharesdk.**{*;} -keep class com.sina.**{*;} -keep class **.R$* {*;} -keep class **.R{*;} -keep class com.mob.**{*;} -dontwarn com.mob.** -dontwarn cn.sharesdk.** -dontwarn **.R$* # fastjson -dontwarn com.alibaba.fastjson.** -keep class com.alibaba.fastjson.**{*; } # retrofit2 # Platform calls Class.forName on types which do not checkExist on Android to determine platform. -dontnote retrofit2.Platform # Platform used when running on Java 8 VMs. Will not be used at runtime. -dontwarn retrofit2.Platform$Java8 # Retain declared checked exceptions for use by a Proxy instance. -keepattributes Exceptions # okhttp3 -dontwarn okhttp3.** # okio -dontwarn okio.** # A resource is loaded with a relative path so the package of this class must be preserved. -keepnames class okhttp3.internal.publicsuffix.PublicSuffixDatabase # Aliyun oss -keep class com.taobao.securityjni.**{*;} -keep class com.taobao.wireless.security.**{*;} -keep class com.ut.secbody.**{*;} -keep class com.taobao.dp.**{*;} -keep class com.alibaba.wireless.security.**{*;} -keep class com.alibaba.security.rp.**{*;} -keep class com.alibaba.sdk.android.**{*;} -keep class com.alibaba.security.biometrics.**{*;} -keep class android.taobao.windvane.**{*;} -dontwarn com.alibaba.** -dontwarn com.taobao.** -dontwarn com.google.** -dontwarn edu.umd.cs.** -dontwarn org.apache.** -dontwarn com.amap.** #网易七鱼客服系统 -dontwarn com.qiyukf.** -keep class com.qiyukf.** {*;} # 确保openFileChooser方法不被混淆 -keepclassmembers class * extends android.webkit.WebChromeClient{ public void openFileChooser(...); } #高德地图 -keep class com.amap.api.location.**{*;} -keep class com.amap.api.fence.**{*;} -keep class com.autonavi.aps.amapapi.model.**{*;} #暂时keep这个View排查华为oom问题 -keep class com.yizhuan.erban.avroom.widget.MicroView{*;} -keep class com.jude.rollviewpager.RollPagerView{*;} #linkedMe -keep class com.microquation.linkedme.android.** { *; } # vivo推送 -dontwarn com.vivo.push.** -keep class com.vivo.push.**{*; } -keep class com.vivo.vms.**{*; } -keep class com.netease.nimlib.mixpush.vivo.VivoPush* {*;} -keep class com.netease.nimlib.mixpush.vivo.VivoPushReceiver{*;} #一键登录 -dontwarn com.cmic.sso.sdk.** -keep public class com.cmic.sso.sdk.**{*;} -keep class cn.com.chinatelecom.account.api.**{*;} -keep class com.netease.nis.quicklogin.entity.**{*;} -keep class com.netease.nis.quicklogin.listener.**{*;} -keep class com.netease.nis.quicklogin.QuickLogin{ public ; public ; } -keep class com.netease.nis.quicklogin.helper.UnifyUiConfig{*;} -keep class com.netease.nis.quicklogin.helper.UnifyUiConfig$Builder{ public ; public ; } -keep class com.netease.nis.quicklogin.utils.LoginUiHelper$CustomViewListener{ public ; public ; } -keep class com.bun.miitmdid.core.** {*;} -keep class com.bun.** {*;} -keep class com.asus.msa.** {*;} -keep class com.heytap.openid.** {*;} -keep class com.huawei.android.hms.pps.** {*;} -keep class com.meizu.flyme.openidsdk.** {*;} -keep class com.samsung.android.deviceidservice.** {*;} -keep class com.zui.** {*;} -keep class com.huawei.hms.ads.** {*; } -keep interface com.huawei.hms.ads.** {*; } -dontwarn com.sdk.** -keep class com.sdk.** { *;} -dontwarn io.realm.** -keep public class * extends android.app.Service -dontwarn com.meizu.cloud.** -keep class com.meizu.cloud.** {*;}