# 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 <methods>;
|
}
|
-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 <methods>;
|
}
|
-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 <init>(android.content.Context);
|
public <init>(android.content.Context, android.util.AttributeSet);
|
public <init>(android.content.Context, android.util.AttributeSet, int);
|
}
|
-keepclasseswithmembers class * {
|
public <init>(android.content.Context, android.util.AttributeSet);
|
public <init>(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** { *; }
|
-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** { *; }
|