# 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 -dontskipnonpubliclibraryclassmembers -dontpreverify -verbose -ignorewarnings -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* -keepattributes EnclosingMethod -keepattributes SourceFile,LineNumberTable -keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,*Annotation*,EnclosingMethod -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.app.IntentService -keep public class * extends android.content.BroadcastReceiver -keep public class * extends android.content.ContentProvider -keep public class com.android.vending.licensing.ILicensingService -keep public class * extends android.app.backup.BackupAgentHelper -keep public class * extends android.view.View -keepattributes *Annotation* -keep public class * extends android.app.backup.BackupAgent -keep public class * extends android.preference.Preference -keep public class * extends android.app.Fragment -keep public class * extends androidx.fragment.app.** -keep public class * extends android.support.v4.** -keep public class * extends android.support.v7.** -keep public class * extends android.support.annotation.** -keep public class * extends androidx.lifecycle.** # 保留support下的所有类及其内部类 -keep class android.support.** {*;} #Base -keep class com.kalacheng.commonview.bean.*{*;} -keep class * extends com.kalacheng.base.base.BaseFragment { *; } -keep class * extends com.kalacheng.base.base.BaseMVVMFragment { *; } -keep class * extends com.kalacheng.base.base.BaseViewHolder { *; } -keep class * extends com.kalacheng.base.base.BaseMVVMViewHolder { *; } #Beans -keep class com.kalacheng.baseLive.**{*;} -keep class com.kalacheng.busappsupport.**{*;} -keep class com.kalacheng.busbasconfig.**{*;} -keep class com.kalacheng.busblindbox.**{*;} -keep class com.kalacheng.buschatroom.**{*;} -keep class com.kalacheng.buscommon.**{*;} -keep class com.kalacheng.busdynamiccircle.**{*;} -keep class com.kalacheng.busfinance.**{*;} -keep class com.kalacheng.busgame.**{*;} -keep class com.kalacheng.busgraderight.**{*;} -keep class com.kalacheng.buslive.**{*;} -keep class com.kalacheng.buslivebas.**{*;} -keep class com.kalacheng.busliveplugin.**{*;} -keep class com.kalacheng.busmsgcenter.**{*;} -keep class com.kalacheng.busnobility.**{*;} -keep class com.kalacheng.busooolive.**{*;} -keep class com.kalacheng.busoperation.**{*;} -keep class com.kalacheng.buspersonalcenter.**{*;} -keep class com.kalacheng.busplugin.**{*;} -keep class com.kalacheng.busseek.**{*;} -keep class com.kalacheng.busshop.**{*;} -keep class com.kalacheng.busshortvideo.**{*;} -keep class com.kalacheng.bususer.**{*;} -keep class com.kalacheng.busvoicelive.**{*;} -keep class com.kalacheng.finance.**{*;} -keep class com.kalacheng.game.**{*;} -keep class com.kalacheng.libbas.**{*;} -keep class com.kalacheng.libuser.**{*;} -keep class com.kalacheng.shop.**{*;} -keep class com.kalacheng.shortvideo.**{*;} -keep class com.kalacheng.template.**{*;} #直播购添加地址对象 -keep class com.kalacheng.shopping.buyer.bean.AddressBean{*;} -keep class com.kalacheng.shopping.buyer.bean.AddressBean$CitiesBean{*;} -keep class com.kalacheng.shopping.buyer.bean.AddressBean$CitiesBean$CountiesBean{*;} #消息 -keep class com.kalacheng.message.bean.*{*;} -keep class com.kalacheng.imjmessage.bean.*{*;} -keep class com.kalacheng.imjmessage.event.*{*;} #地图 -keep class com.kalacheng.map.bean.*{*;} #glide -dontwarn com.bumptech.glide.** #知乎Matisse额外规则 -dontwarn com.squareup.picasso.** -keep class com.zhihu.matisse.**{*;} #微信开放平台 -keep class com.tencent.mm.opensdk.** { *; } -keep class com.tencent.wxop.** { *; } -keep class com.tencent.mm.sdk.** { *; } #ucrop -dontwarn com.yalantis.ucrop** -keep class com.yalantis.ucrop** { *; } -keep interface com.yalantis.ucrop** { *; } #腾讯实时音视频 -keep class com.tencent.**{*;} -dontwarn com.tencent.** -keep class tencent.**{*;} -dontwarn tencent.** -keep class qalsdk.**{*;} -dontwarn qalsdk.** #支付宝支付 -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 *;} -keep class com.alipay.sdk.app.H5PayCallback { ; ; } -keep class com.alipay.android.phone.mrpc.core.** { *; } -keep class com.alipay.apmobilesecuritysdk.** { *; } -keep class com.alipay.mobile.framework.service.annotation.** { *; } -keep class com.alipay.mobilesecuritysdk.face.** { *; } -keep class com.alipay.tscenter.biz.rpc.** { *; } -keep class org.json.alipay.** { *; } -keep class com.alipay.tscenter.** { *; } -keep class com.ta.utdid2.** { *;} -keep class com.ut.device.** { *;} #Mina -keep class org.apache.mina.** { *; } -keep class org.slf4j.** { *; } #Socket -keep class com.wengying666.imsocket.** { *; } #极光 -dontoptimize -dontpreverify -dontwarn cn.jpush.** -keep class cn.jpush.** { *; } -keep class * extends cn.jpush.android.helpers.JPushMessageReceiver { *; } -dontwarn cn.jiguang.** -keep class cn.jiguang.** { *; } #极光im --- start---- -keepattributes EnclosingMethod,Signature -dontwarn cn.jpush.** -keep class cn.jpush.** { *; } -dontwarn cn.jiguang.** -keep class cn.jiguang.** { *; } -dontwarn cn.jmessage.** -keep class cn.jmessage.**{ *; } -keepclassmembers class ** { public void onEvent*(**); } #极光认证 -dontwarn cn.com.chinatelecom.** -keep class cn.com.chinatelecom.** { *; } -dontwarn com.ct.** -keep class com.ct.** { *; } -dontwarn a.a.** -keep class a.a.** { *; } -dontwarn com.cmic.** -keep class com.cmic.** { *; } -dontwarn com.unicom.** -keep class com.unicom.** { *; } -dontwarn com.sdk.** -keep class com.sdk.** { *; } -dontwarn com.sdk.** -keep class com.sdk.** { *; } #========================gson================================ -dontwarn com.google.** -keep class com.google.gson.** {*;} #========================protobuf================================ -keep class com.google.protobuf.** {*;} #极光im --- end---- #Bugly -dontwarn com.tencent.bugly.** -keep public class com.tencent.bugly.**{*;} #JobService -keep public class * extends android.app.job.JobService #MTA -keep class com.tencent.stat.*{*;} -keep class com.tencent.mid.*{*;} #枚举 -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } #高德地图 3D 地图 V5.0.0之后: -keep class com.amap.api.maps.**{*;} -keep class com.autonavi.**{*;} -keep class com.amap.api.trace.**{*;} #定位 -keep class com.amap.api.location.**{*;} -keep class com.amap.api.fence.**{*;} -keep class com.autonavi.aps.amapapi.model.**{*;} #美颜 -keep class cn.tillusory.**{*;} -keep class com.hwangjr.**{*;} -keep class rx.**{*;} #mob -keep class cn.sharesdk.**{*;} -keep class com.sina.**{*;} -keep class **.R$* {*;} -keep class **.R{*;} -keep class com.mob.**{*;} -keep class m.framework.**{*;} -keep class com.bytedance.**{*;} -dontwarn cn.sharesdk.** -dontwarn com.sina.** -dontwarn com.mob.** -dontwarn **.R$* #Parcelable -keep class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator *; } # 保留Serializable序列化的类不被混淆 -keepclassmembers class * implements java.io.Serializable { static final long serialVersionUID; private static final java.io.ObjectStreamField[] serialPersistentFields; !static !transient ; !private ; !private ; private void writeObject(java.io.ObjectOutputStream); private void readObject(java.io.ObjectInputStream); java.lang.Object writeReplace(); java.lang.Object readResolve(); } -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); } #ARouter -keep public class com.alibaba.android.arouter.routes.**{*;} -keep public class com.alibaba.android.arouter.facade.**{*;} -keep class * implements com.alibaba.android.arouter.facade.template.ISyringe{*;} # If you use the byType method to obtain Service, add the following rules to protect the interface: -keep interface * implements com.alibaba.android.arouter.facade.template.IProvider # If single-type injection is used, that is, no interface is defined to implement IProvider, the following rules need to be added to protect the implementation #-keep class * implements com.alibaba.android.arouter.facade.template.IProvider #MVVM -keep class **.*Binding {*;} -keep class **.*BindingImpl {*;} #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; } -dontnote rx.internal.util.PlatformDependent # 保留本地native方法不被混淆 -keepclasseswithmembernames class * { native ; } # 保留在Activity中的方法参数是view的方法, # 这样以来我们在layout中写的onClick就不会被影响 -keepclassmembers class * extends android.app.Activity{ public void *(android.view.View); } # 保留我们自定义控件(继承自View)不被混淆 -keep public class * extends android.view.View{ *** get*(); void set*(***); public (android.content.Context); public (android.content.Context, android.util.AttributeSet); public (android.content.Context, android.util.AttributeSet, int); } # 对于带有回调函数的onXXEvent、**On*Listener的,不能被混淆 -keepclassmembers class * { void *(**On*Event); void *(**On*Listener); } # webView处理,项目中没有使用到webView忽略即可 -keepclassmembers class fqcn.of.javascript.interface.for.webview { public *; } -keepclassmembers class * extends android.webkit.webViewClient { public void *(android.webkit.WebView, java.lang.String, android.graphics.Bitmap); public boolean *(android.webkit.WebView, java.lang.String); } -keepclassmembers class * extends android.webkit.webViewClient { public void *(android.webkit.webView, jav.lang.String); } #----------retrofit-------------- #-keepclassmembernames,allowobfuscation interface * { # @retrofit2.http.* ; #} #-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement # -keep class retrofit2.** { *; } -dontwarn retrofit2.** -keepattributes Signature -keepattributes Exceptions -dontwarn okio.** -dontwarn javax.annotation.** -dontoptimize -dontpreverify -keepattributes EnclosingMethod,Signature -dontwarn cn.jpush.** -keep class cn.jpush.** { *; } -dontwarn cn.jiguang.** -keep class cn.jiguang.** { *; } -dontwarn cn.jmessage.** -keep class cn.jmessage.**{ *; } -keepclassmembers class ** { public void onEvent*(**); } #========================gson================================ -dontwarn com.google.** -keep class com.google.gson.** {*;} #========================protobuf================================ -keep class com.google.protobuf.** {*;} #========================声望================================ -keep class io.agora.**{*;} -keep public class com.xuantongyun.storagecloud.**{*;} #叭叭云 -keep class com.qiniu.**{*;} -keep class com.qiniu.**{public ();} #叭叭美颜2 -keep class com.faceunity.wrapper.faceunity {*;} #移动安全联盟 -keep class com.bun.miitmdid.core.** {*;} -keep class XI.CA.XI.**{*;} -keep class XI.K0.XI.**{*;} -keep class XI.XI.K0.**{*;} -keep class XI.xo.XI.XI.**{*;} -keep class com.asus.msa.SupplementaryDID.**{*;} -keep class com.asus.msa.sdid.**{*;} -keep class com.bun.lib.**{*;} -keep class com.bun.miitmdid.**{*;} -keep class com.huawei.hms.ads.identifier.**{*;} -keep class com.samsung.android.deviceidservice.**{*;} -keep class com.zui.opendeviceidlibrary.**{*;} -keep class org.json.**{*;} -keep public class com.netease.nis.sdkwrapper.Utils {public ;} #腾讯IM -keep class com.tencent.imsdk.** { *; } -keep class com.kalacheng.tim.event.*{*;} -keep class com.kalacheng.tim.bean.*{*;} #阿里云存储 -keep class com.alibaba.sdk.android.oss.** { *; } -dontwarn okio.** -dontwarn org.apache.commons.codec.binary.** ######################短视频混淆配置######################### -keep class com.aliyun.**{*;} -keep class com.duanqu.**{*;} -keep class com.qu.**{*;} -keep class com.alibaba.**{*;} -keep class component.alivc.**{*;} -keep class com.alivc.**{*;} -keep class org.webrtc.**{*;} -keep class org.ugsv.**{*;}