# 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 # androidX混淆 -keep class com.google.android.material.** {*;} -keep class androidx.** {*;} -keep public class * extends androidx.** -keep interface androidx.** {*;} -dontwarn com.google.android.material.** -dontnote com.google.android.material.** -dontwarn androidx.** -optimizationpasses 5 -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -dontskipnonpubliclibraryclassmembers -dontpreverify -verbose -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* -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 public class com.android.vending.licensing.ILicensingService -keepattributes Signature #qq -keep class * extends android.app.Dialog -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$* {*;} #umeng -keep class com.umeng.** {*;} -keep public class * extends com.umeng.** -keep public class com.umeng.fb.ui.ThreadView { } #R文件 -keep class **.R$* {*;} #忘了可能是微博 -dontwarn sdk.** -keep class sdk.** { *; } #微信 -keep class com.tencent.mm.opensdk.** { *; } -keep class com.tencent.wxop.** { *; } -keep class com.tencent.mm.sdk.** { *; } #jackson -keep class com.fasterxml.jackson.annotation.** {*;} #支付宝 -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.auth.AlipaySDK{ public *;} -keep class com.alipay.sdk.auth.APAuthInfo{ public *;} -keep class com.alipay.mobilesecuritysdk.* -keep class com.ut.* -keepattributes InnerClasses,EnclosingMethod -keep public class com.qianyu.diaochan.R$*{ public static final int *; } -dontwarn android.support.v4.** -keep class android.support.v4.** { *; } -dontwarn java.awt.**,javax.security.**,java.beans.**,javax.xml.**,java.util.**,org.w3c.dom.** -dontwarn android.net.http.** -keep public class * extends android.view.View { public (android.content.Context); public (android.content.Context, android.util.AttributeSet); public (android.content.Context, android.util.AttributeSet, int); public void set*(...); } -keep class com.qianyu.diaochan.model.**{ *; } -keep class com.qianyu.diaochan.socket.**{ *; } -keepclasseswithmembernames class * { native ; } -keepclasseswithmembers class * { public (android.content.Context, android.util.AttributeSet); } -keepclasseswithmembers class * { public (android.content.Context, android.util.AttributeSet, int); } -keepclassmembers class * { public (org.json.JSONObject); } -keepclassmembers class * extends android.app.Activity { public void *(android.view.View); } -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } -keep class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator *; } #不混淆所有 Parcelable -keep class * implements android.os.Parcelable {*; } -keepclasseswithmembernames class * { @butterknife.* ; } -keepclasseswithmembernames class * { @butterknife.* ; } # Only required if you use AsyncExecutor -keepclassmembers class * extends de.greenrobot.event.util.ThrowableFailureEvent { (java.lang.Throwable); } -keepattributes *Annotation* -keep class de.greenrobot.** {*;} -keepnames class * extends android.view.View -keep class * extends android.app.Fragment { public void setUserVisibleHint(boolean); public void onHiddenChanged(boolean); public void onResume(); public void onPause(); } -keep class androidx.fragment.app.Fragment { public void setUserVisibleHint(boolean); public void onHiddenChanged(boolean); public void onResume(); public void onPause(); } -keep class * extends androidx.fragment.app.Fragment { public void setUserVisibleHint(boolean); public void onHiddenChanged(boolean); public void onResume(); public void onPause(); } #mp4parser -keep class * implements com.coremedia.iso.boxes.Box { *; } -dontwarn com.coremedia.iso.boxes.** -dontwarn com.googlecode.mp4parser.authoring.tracks.mjpeg.** -dontwarn com.googlecode.mp4parser.authoring.tracks.ttml.** -assumenosideeffects class android.util.Log { public static boolean isLoggable(java.lang.String,int); public static int v(...); public static int i(...); public static int w(...); public static int d(...); public static int e(...); } #okhttp -dontwarn org.codehaus.** -dontwarn java.nio.** -keep class com.squareup.okhttp.** { *;} #Glide okhttp -keep class com.bumptech.glide.integration.okhttp3.OkHttpGlideModule #Glide -keep public class * implements com.bumptech.glide.module.GlideModule -keep class * extends com.bumptech.glide.module.AppGlideModule { (...); } -keep public enum com.bumptech.glide.load.ImageHeaderParser$** { **[] $VALUES; public *; } -keep class com.bumptech.glide.load.data.ParcelFileDescriptorRewinder$InternalRewinder { *** rewind(); } # Disabling obfuscation is useful if you collect stack traces from production crashes # (unless you are using a system that supports de-obfuscate the stack traces). -dontobfuscate -dontshrink # okhttp -keepattributes Signature -keepattributes *Annotation* -keep class okhttp3.** { *; } -keep interface okhttp3.** { *; } -dontwarn okhttp3.** # okio -keep class sun.misc.Unsafe { *; } -dontwarn java.nio.file.* -dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement -dontwarn okio.** ## -dontwarn com.tencent.connect.avatar.** -keep class com.tencent.** {*;} -dontwarn com.umeng.** #RecyclerViewPager -keep class com.lsjwzh.widget.recyclerviewpager.** -dontwarn com.lsjwzh.widget.recyclerviewpager.** ########--------Retrofit + RxJava--------######### -dontwarn retrofit2.** -keep class retrofit2.** { *; } -dontwarn sun.misc.Unsafe -dontwarn com.octo.android.robospice.retrofit.RetrofitJackson** -dontwarn retrofit2.appengine.UrlFetchClient -keepattributes Signature -keepattributes Exceptions -keepclasseswithmembers class * { @retrofit.http.* ; } -keep class com.google.gson.** { *; } -keep class com.google.inject.** { *; } -keep class org.apache.http.** { *; } -keep class org.apache.james.mime4j.** { *; } -keep class javax.inject.** { *; } -keep class retrofit2.** { *; } -keep class uk.co.senab.** { *; } -keep class rx.** { *; } -keep class retrofit2.** { *; } -keep class okio.** { *; } -keep class okhttp3.** { *; } -keep class u.aly.bo.** { *; } -dontnote org.apache.http.** -dontnote org.json.** -dontnote com.qianyu.diaochan.** -dontnote kankan.wheel.** -dontnote internal.org.apache.** -dontnote com.yintong.** -dontnote com.umeng.** -dontnote com.tendcloud.** -dontnote com.slider.library.** -dontnote com.sina.weibo.** -dontnote com.mp4parser.** -dontnote com.mobeta.android.** -dontnote org.apache.commons.** -dontnote com.asqw.android.** -dontnote fqcn.of.javascript.** -dontnote sun.misc.** -dontnote com.github.ksoichiro.** -dontnote com.alipay.** -dontnote com.baidu.** -dontnote com.facebook.** -dontnote com.google.gson.** -dontnote com.igexin.** -dontnote com.pingan.** -dontnote com.tencent.** -dontnote com.unionpay.** -dontnote okhttp3.** -dontnote org.jivesoftware.** -dontnote retrofit2.** -dontnote rx.internal.** -dontnote me.imid.** -dontnote u.aly.** -dontnote org.joda.** -dontnote android.inputmethodservice.** -dontnote com.handmark.pulltorefresh.** -dontnote com.googlecode.mp4parser.** -dontnote com.google.zxing.** -dontnote com.github.mikephil.** -dontnote com.example.wheelpickerlibrary.** -dontnote com.etsy.android.** -dontnote com.coremedia.iso.** -dontnote android.net.http.** -dontnote org.apache.commons.** -dontwarn org.apache.http.** -dontwarn android.net.http.AndroidHttpClient -dontwarn retrofit2.** -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; long producerNode; long consumerNode; } -keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueConsumerNodeRef { rx.internal.util.atomic.LinkedQueueNode consumerNode; } -dontwarn okio.** -dontwarn retrofit2.Platform$Java8 -keepattributes *Annotation* -keepattributes Signature -keepattributes *Annotation*,Signature #google -keep public class com.google.** {*;} # don't warn joda -dontwarn org.joda.** # ARouter -keep public class com.alibaba.android.arouter.routes.**{*;} -keep class * implements com.alibaba.android.arouter.facade.template.ISyringe{*;} #------------------ 下方是共性的排除项目 ---------------- # 方法名中含有“JNI”字符的,认定是Java Native Interface方法,自动排除 # 方法名中含有“JRI”字符的,认定是Java Reflection Interface方法,自动排除 -keepclasseswithmembers class * { ... *JNI*(...); } -keepclasseswithmembernames class * { ... *JRI*(...); } -keep class **JNI* {*;} # -------------------------------------------------------------------------- # Addidional for x5.sdk classes for apps -dontwarn dalvik.** -dontwarn com.tencent.smtt.** -keep class com.tencent.smtt.** { *; } -keep class com.tencent.tbs.** { *; } #protobuf -keep class com.google.protobuf.** {*;} -dontwarn com.google.protobuf.** #stetho -keep class com.facebook.stetho.** { *; } -dontwarn org.mozilla.javascript.** -dontwarn org.mozilla.classfile.** -keep class org.mozilla.javascript.** { *; } #json_path -keep class com.jayway.jsonpath.**{ *; } -dontwarn com.jayway.jsonpath.** -keep class org.slf4j.**{ *; } -dontwarn org.slf4j.** #adapter -keep class com.chad.library.adapter.** { *; } -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 { (...); } #tutuSdk -keepclassmembers class * implements java.io.Serializable { static final long serialVersionUID; private void writeObject(java.io.ObjectOutputStream); private void readObject(java.io.ObjectInputStream); java.lang.Object writeReplace(); java.lang.Object readResolve(); } # keep setters in Views so that animations can still work. # see http://proguard.sourceforge.net/manual/examples.html#beans -keepclassmembers public class * extends android.view.View { void set*(***); *** get*(); } # We want to keep methods in Activity that could be used in the XML attribute onClick -keepclassmembers class * extends android.app.Activity { public void *(android.view.View); } # For enumeration classes, see http://proguard.sourceforge.net/manual/examples.html#enumerations -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } -keep class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator *; } -verbose -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* # The support library contains references to newer platform versions. # Don't warn about those in case this app is linking against an older # platform version. We know about them, and they are safe. -dontwarn android.support.** -dontwarn org.apache.commons.** -keep class android.support.**{ *; } -keep class org.apache.commons.**{ *; } -keep class com.nostra13.universalimageloader.**{ *; } -keep class it.sephiroth.android.library.exif2.**{ *; } -keep class org.lasque.tusdk.**{public *; protected *; } -keep class org.lasque.tusdk.core.utils.image.GifHelper{ *; } -keep class org.lasque.codec.**{public *; protected *; private *;} #MPAndroidChart -dontwarn com.github.mikephil.charting.data. ##TONGDUN #-dontwarn android.os.** #-dontwarn com.android.internal.** #-keep class cn.tongdun.android.**{*;} #-keep class cn.tongdun.bugly.**{*;} # ========== chameleon 包下的类混淆配置 ========== -keep class com.didi.chameleon.** { *; } # ========== liveDataBus 混淆配置 ========== -dontwarn com.jeremyliao.liveeventbus.** -keep class com.jeremyliao.liveeventbus.** { *; } -keep class androidx.lifecycle.** { *; } -keep class androidx.arch.core.** { *; } #实体类 -keep class **.model.**{*;} #实体类 -keep class **.models.**{*;} #manifestPaser -keep class * implements com.xueyu.applicationproxy.ConfigModule {*;} #viewModel -keep class * extends com.yc.baselibrary.view.base.BaseVm{*;} # ServiceLoader support -keepnames class kotlinx.coroutines.internal.MainDispatcherFactory {} -keepnames class kotlinx.coroutines.CoroutineExceptionHandler {} -keepnames class kotlinx.coroutines.android.AndroidExceptionPreHandler {} -keepnames class kotlinx.coroutines.android.AndroidDispatcherFactory {} # Most of volatile fields are updated with AFU and should not be mangled -keepclassmembernames class kotlinx.** { volatile ; } #PictureSelector 2.0 -keep class com.luck.picture.lib.** { *; } #Ucrop -dontwarn com.yalantis.ucrop** -keep class com.yalantis.ucrop** { *; } -keep interface com.yalantis.ucrop** { *; } #Okio -dontwarn org.codehaus.mojo.animal_sniffer.* # 哪个包混淆失败,就取消对那个包的混淆 -dontwarn com.android.internal.** -keep class com.android.internal.** { *;} -dontwarn com.android.server.** -keep class com.android.server.** { *;} -dontwarn com.mediatek.** -keep class com.mediatek.** { *;} -dontwarn android.** -keep class android.** { *;} -dontwarn org.apache.http.** -keep class org.apache.http.** { *;} -dontwarn com.dreamlive.cn.** -keep classcom.dreamlive.cn.**{*;} -keep public class com.bumptech.glide.integration.webp.WebpImage { *; } -keep public class com.bumptech.glide.integration.webp.WebpFrame { *; } -keep public class com.bumptech.glide.integration.webp.WebpBitmapFactory { *; }