# 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 #---------------------------------基本指令区---------------------------------- -keepattributes SourceFile,LineNumberTable -keepattributes Exceptions, Signature, InnerClasses -keepclasseswithmembernames class * { # 保持native方法不被混淆 native ; } -keep class * implements Android.os.Parcelable { # 保持Parcelable不被混淆 public static final Android.os.Parcelable$Creator *; } -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } -keepattributes *Annotation* #保持注解 #---------------------------------默认保留区--------------------------------- -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 * extends android.view.View -keep public class com.android.vending.licensing.ILicensingService -keep class android.support.** {*;} -keepclasseswithmembernames class * { native ; } -keepclassmembers class * extends android.app.Activity{ public void *(android.view.View); } -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } -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); } -keepclasseswithmembers class * { public (android.content.Context, android.util.AttributeSet); public (android.content.Context, android.util.AttributeSet, int); } -keep class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator *; } -keepclassmembers class * implements java.io.Serializable { static final long serialVersionUID; private static final java.io.ObjectStreamField[] serialPersistentFields; private void writeObject(java.io.ObjectOutputStream); private void readObject(java.io.ObjectInputStream); java.lang.Object writeReplace(); java.lang.Object readResolve(); } -keep class **.R$* { *; } -keepclassmembers class * { void *(**On*Event); } #---------------------------------------------------------------------------- -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 com.amap.api.services.**{*;} -keep class com.amap.api.maps2d.**{*;} -keep class com.amap.api.mapcore2d.**{*;} -keep class com.amap.api.navi.**{*;} -keep class com.autonavi.**{*;} -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.ImageHeaderParser$** { **[] $VALUES; public *; } -keep public class com.zuo.nfcproject.yanzhou.bean.** {*;} -keep public class * extends android.view.View { } -keep class **.R$* {*;} #okhttp -dontwarn okhttp3.** -keep class okhttp3.**{*;} -keep interface okhttp3.**{*;} #rxjava -keep public class io.reactivex.android.**{*;} -keep public class io.reactivex.**{*;} -keep public class rx.android.**{*;} -keep public class rx.**{*;} -keep public class javax.annotation.**{*;} -keep public class javax.inject.**{*;} -keep class com.google.gson.** { *; } #glide -keep public class com.bumptech.glide.**{*;} -keep public class com.luck.picture.lib.**{*;} -keep public class androidx.**{*;} -keep public class com.bumptech.**{*;} -keep public class com.scwang.**{*;} -keep public class kotlin.**{*;} -keep public class retrofit2.**{*;} -keep public class okio.**{*;} -keep public class com.zuo.nfcproject.yanzhou.net.**{*;} # 若Android API 高于27添加以下(不需要/): -dontwarn com.bumptech.glide.load.resource.bitmap.VideoDecoder # for DexGuard only #-keep resource xmlelements manifest/application/meta-data@value=GlideModule -keep class com.xuexiang.xupdate.entity.** { *; } # Note: if you use a custom API parser for parsing, you need to add confusion to your custom API entities. Here are the custom API entity obfuscation rules configured in this demo: -keep class com.xuexiang.xupdatedemo.entity.** { *; } -keep class com.hjq.permissions.** {*;} #选择图片的框架 -keep class com.luck.picture.lib.** { *; } -keep class com.luck.lib.camerax.** { *; } -dontwarn com.yalantis.ucrop** -keep class com.yalantis.ucrop** { *; } -keep interface com.yalantis.ucrop** { *; }