| # These are the baseline recommended ProGuard / R8 settings for Android apps. |
| # See https://developer.android.com/r/tools/r8/keep-rules for more details. |
| # Do not edit this file. Add custom rules for your project to proguard-rules.pro. |
| |
| -allowaccessmodification |
| |
| # Preserve some attributes that may be required for reflection. |
| -keepattributes AnnotationDefault, |
| EnclosingMethod, |
| InnerClasses, |
| RuntimeVisibleAnnotations, |
| RuntimeVisibleParameterAnnotations, |
| RuntimeVisibleTypeAnnotations, |
| Signature |
| |
| -keep public class com.google.vending.licensing.ILicensingService |
| -keep public class com.android.vending.licensing.ILicensingService |
| -keep public class com.google.android.vending.licensing.ILicensingService |
| -dontnote com.android.vending.licensing.ILicensingService |
| -dontnote com.google.vending.licensing.ILicensingService |
| -dontnote com.google.android.vending.licensing.ILicensingService |
| |
| # For native methods, see https://www.guardsquare.com/manual/configuration/examples#native |
| -keepclasseswithmembernames,includedescriptorclasses class * { |
| native <methods>; |
| } |
| |
| # Keep setters in Views so that animations can still work. |
| -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 https://www.guardsquare.com/manual/configuration/examples#enumerations |
| -keepclassmembers enum * { |
| public static **[] values(); |
| public static ** valueOf(java.lang.String); |
| } |
| |
| -keepclassmembers class * implements android.os.Parcelable { |
| public static final ** CREATOR; |
| } |
| |
| # Preserve annotated Javascript interface methods. |
| -keepclassmembers class * { |
| @android.webkit.JavascriptInterface <methods>; |
| } |
| |
| # The support libraries 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. |
| -dontnote android.support.** |
| -dontnote androidx.** |
| -dontwarn android.support.** |
| -dontwarn androidx.** |
| |
| # Understand the @Keep support annotation. |
| -keep class android.support.annotation.Keep |
| |
| -keep @android.support.annotation.Keep class * {*;} |
| |
| -keepclasseswithmembers class * { |
| @android.support.annotation.Keep <methods>; |
| } |
| |
| -keepclasseswithmembers class * { |
| @android.support.annotation.Keep <fields>; |
| } |
| |
| -keepclasseswithmembers class * { |
| @android.support.annotation.Keep <init>(...); |
| } |
| |
| # These classes are duplicated between android.jar and org.apache.http.legacy.jar. |
| -dontnote org.apache.http.** |
| -dontnote android.net.http.** |
| |
| # These classes are duplicated between android.jar and core-lambda-stubs.jar. |
| -dontnote java.lang.invoke.** |