187 lines
6.0 KiB
Plaintext
187 lines
6.0 KiB
Plaintext
# Add project specific ProGuard rules here.
|
||
# By default, the flags in this file are appended to flags specified
|
||
# in C:\Android\sdk/tools/proguard/proguard-android.txt
|
||
# You can edit the include path and order by changing the proguardFiles
|
||
# directive in build.gradle.
|
||
#
|
||
# For more details, see
|
||
# http://developer.android.com/guide/developing/tools/proguard.html
|
||
|
||
# Add any project specific keep options here:
|
||
|
||
# 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 *;
|
||
#}
|
||
|
||
#--------- remove logs start ----------------
|
||
-assumenosideeffects class com.lightgame.config.CommonDebug {
|
||
private static String getLogTag(...);
|
||
private static String getMethodName();
|
||
public static void logMethodName(...);
|
||
public static void logParams(...);
|
||
public static void logFields(...);
|
||
public static void logMethodWithParams(...);
|
||
}
|
||
|
||
#-assumenosideeffects class com.lightgame.config.CommonDebug {*;}
|
||
|
||
#-dontoptimize
|
||
#--------- remove logs end ----------------
|
||
|
||
-keepattributes *Annotation*,Signature,InnerClasses,EnclosingMethod
|
||
-dontwarn InnerClasses
|
||
|
||
# OrmLite uses reflection
|
||
-keep class com.j256.**
|
||
-keepclassmembers class com.j256.** { *; }
|
||
-keep enum com.j256.**
|
||
-keepclassmembers enum com.j256.** { *; }
|
||
-keep interface com.j256.**
|
||
-keepclassmembers interface com.j256.** { *; }
|
||
-dontwarn com.j256.**
|
||
|
||
#okhttp3
|
||
-dontwarn com.squareup.okhttp3.**
|
||
-dontwarn okio.**
|
||
-keep class com.squareup.okhttp3.** { *;}
|
||
|
||
# stetho
|
||
-keep class com.facebook.stetho.** { *; }
|
||
-dontwarn com.facebook.stetho.**
|
||
|
||
# Retrofit 2.2
|
||
# Platform calls Class.forName on types which do not exist 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 generic type information for use by reflection by converters and adapters.
|
||
-keepattributes Signature
|
||
# Retain declared checked exceptions for use by a Proxy instance.
|
||
-keepattributes Exceptions
|
||
|
||
# Retrofit 2.X
|
||
## https://square.github.io/retrofit/ ##
|
||
|
||
-dontwarn retrofit2.**
|
||
-keep class retrofit2.** { *; }
|
||
-keepattributes Signature
|
||
-keepattributes Exceptions
|
||
|
||
-keepclasseswithmembers class * {
|
||
@retrofit2.http.* <methods>;
|
||
}
|
||
|
||
|
||
# rxjava
|
||
-keep class rx.schedulers.Schedulers {
|
||
public static <methods>;
|
||
}
|
||
-keep class rx.schedulers.ImmediateScheduler {
|
||
public <methods>;
|
||
}
|
||
-keep class rx.schedulers.TestScheduler {
|
||
public <methods>;
|
||
}
|
||
-keep class rx.schedulers.Schedulers {
|
||
public static ** test();
|
||
}
|
||
-keepclassmembers class rx.internal.util.unsafe.*ArrayQueue*Field* {
|
||
long producerIndex;
|
||
long consumerIndex;
|
||
}
|
||
-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef {
|
||
long producerNode;
|
||
long consumerNode;
|
||
}
|
||
-dontwarn rx.internal.util.**
|
||
|
||
## AutoScrollViewPager
|
||
-keep class cn.trinea.android.** { *; }
|
||
-keepclassmembers class cn.trinea.android.** { *; }
|
||
-dontwarn cn.trinea.android.**
|
||
|
||
## butterknife
|
||
# Retain generated class which implement Unbinder.
|
||
#-keep public class * implements butterknife.Unbinder { public <init>(**, android.view.View); }
|
||
#
|
||
## Prevent obfuscation of types which use ButterKnife annotations since the simple name
|
||
## is used to reflectively look up the generated ViewBinding.
|
||
#-keep class butterknife.*
|
||
#-keepclasseswithmembernames class * { @butterknife.* <methods>; }
|
||
#-keepclasseswithmembernames class * { @butterknife.* <fields>; }
|
||
|
||
-dontwarn butterknife.internal.**
|
||
-keep class **$$ViewInjector { *; }
|
||
-keepnames class * { @butterknife.InjectView *;}
|
||
-dontwarn butterknife.Views$InjectViewProcessor
|
||
-dontwarn com.gc.materialdesign.views.**
|
||
|
||
# eventbus
|
||
-keepattributes *Annotation*
|
||
-keepclassmembers class ** {
|
||
@org.greenrobot.eventbus.Subscribe <methods>;
|
||
}
|
||
-keep enum org.greenrobot.eventbus.ThreadMode { *; }
|
||
|
||
# Only required if you use AsyncExecutor
|
||
-keepclassmembers class * extends org.greenrobot.eventbus.util.ThrowableFailureEvent {
|
||
<init>(java.lang.Throwable);
|
||
}
|
||
|
||
# weiboSdk
|
||
-keep class com.sina.weibo.sdk.** { *; }
|
||
-dontwarn android.webkit.WebView
|
||
-dontwarn android.webkit.WebViewClient
|
||
|
||
# app models
|
||
-keep class com.gh.common.view.** {*;}
|
||
-keep class com.gh.gamecenter.db.info.** {*;}
|
||
-keep class com.gh.gamecenter.entity.** {*;}
|
||
-keep class com.gh.gamecenter.retrofit.** {*;}
|
||
-keep class com.gh.gamecenter.eventbus.** {*;}
|
||
-keep class * extends rx.Subscriber
|
||
|
||
#---------------------------------webview------------------------------------
|
||
-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, java.lang.String);
|
||
}
|
||
#----------------------------------------------------------------------------
|
||
|
||
|
||
##---------------Begin: proguard configuration for Gson ----------
|
||
# Gson uses generic type information stored in a class file when working with fields. Proguard
|
||
# removes such information by default, so configure it to keep all of it.
|
||
-keepattributes Signature
|
||
|
||
# For using GSON @Expose annotation
|
||
-keepattributes *Annotation*
|
||
|
||
# Gson specific classes
|
||
-keep class sun.misc.Unsafe { *; }
|
||
#-keep class com.google.gson.stream.** { *; }
|
||
|
||
# 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
|
||
|
||
-keepclassmembers enum * { *; }
|
||
|
||
##---------------End: proguard configuration for Gson ----------
|
||
|
||
# ------ bugly ---------
|
||
-dontwarn com.tencent.bugly.**
|
||
-keep public class com.tencent.bugly.**{*;}
|
||
|
||
# 重命名文件为SourceFile,再配合mapping符号表,可以拿到真实的类名
|
||
-renamesourcefileattribute SourceFile
|
||
# 保留源文件行号
|
||
-keepattributes SourceFile,LineNumberTable |