Created
May 16, 2020 12:16
-
-
Save iniyanmurugavel/05fa51d6bdf8d32c57c9067acef4733b to your computer and use it in GitHub Desktop.
Proguard rules for shrinking and R8
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # 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 | |
| -keep class dmax.dialog.** { | |
| *; | |
| } | |
| # Prevent R8 from leaving Data object members always null | |
| -keepclassmembers,allowobfuscation class * { | |
| @com.google.gson.annotations.SerializedName <fields>; | |
| } | |
| -keepclassmembers,allowobfuscation class * { | |
| @com.google.gson.annotations.SerializedName <fields>; | |
| } | |
| -keep,allowobfuscation @interface com.google.gson.annotations.SerializedName | |
| # CoordinatorLayout resolves the behaviors of its child components with reflection. | |
| -keep public class * extends androidx.coordinatorlayout.widget.CoordinatorLayout$Behavior { | |
| public <init>(android.content.Context, android.util.AttributeSet); | |
| public <init>(); | |
| } | |
| # Make sure we keep annotations for CoordinatorLayout's DefaultBehavior | |
| -keepattributes RuntimeVisible*Annotation* | |
| # Retrofit | |
| -keep class com.google.gson.** { *; } | |
| -keep public class com.google.gson.** {public private protected *;} | |
| -keep class com.google.inject.** { *; } | |
| -keep class org.apache.http.** { *; } | |
| -keep class org.apache.james.mime4j.** { *; } | |
| -keep class javax.inject.** { *; } | |
| -keep class javax.xml.stream.** { *; } | |
| -keep class retrofit.** { *; } | |
| -keep class com.google.appengine.** { *; } | |
| -keepattributes *Annotation* | |
| -keepattributes Signature | |
| -dontwarn com.squareup.okhttp.* | |
| -dontwarn rx.** | |
| -dontwarn javax.xml.stream.** | |
| -dontwarn com.google.appengine.** | |
| -dontwarn java.nio.file.** | |
| -dontwarn org.codehaus.** | |
| -dontwarn retrofit2.** | |
| -dontwarn org.codehaus.mojo.** | |
| -keep class retrofit2.** { *; } | |
| -keepattributes Exceptions | |
| -keepattributes RuntimeVisibleAnnotations | |
| -keepattributes RuntimeInvisibleAnnotations | |
| -keepattributes RuntimeVisibleParameterAnnotations | |
| -keepattributes RuntimeInvisibleParameterAnnotations | |
| -keepattributes EnclosingMethod | |
| -keepclasseswithmembers class * { | |
| @retrofit2.http.* <methods>; | |
| } | |
| -keepclasseswithmembers interface * { | |
| @retrofit2.* <methods>; | |
| } | |
| # Platform calls Class.forName on types which do not exist on Android to determine platform. | |
| -dontnote retrofit2.Platform | |
| # Platform used when running on RoboVM on iOS. Will not be used at runtime. | |
| -dontnote retrofit2.Platform$IOS$MainThreadExecutor | |
| # 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 | |
| # Add any classes the interact with gson | |
| # the following line is for illustration purposes | |
| -keep class com.example.asheq.zanis_postmans.ListAddressesActivity | |
| -keep class com.example.asheq.zanis_postmans.ListOrderActivity | |
| -keep class com.example.asheq.zanis_postmans.LoginActivity | |
| -keep class com.example.asheq.zanis_postmans.SendReportsActivity | |
| -keep class com.example.asheq.track.TrackLocationService | |
| -keep class com.example.asheq.track.TrackLocationApplication | |
| -keep class com.example.asheq.models.** { *; } | |
| # Hide warnings about references to newer platforms in the library | |
| -dontwarn android.support.v7.** | |
| # don't process support library | |
| -keep class android.support.v7.** { *; } | |
| -keep interface android.support.v7.** { *; } | |
| -keep public class * extends android.app.Activity | |
| -keep public class * extends android.app.Application | |
| -keep public class * extends android.app.MapActivity | |
| -keep public class * extends android.app.Service | |
| -keep public class * extends android.content.BroadcastReceiver | |
| -keep public class * extends android.content.ContentProvider | |
| # To support Enum type of class members | |
| -keepclassmembers enum * { *; } | |
| -keep class com.activeandroid.** { *; } | |
| -keep class com.activeandroid.**.** { *; } | |
| -keep class * extends com.activeandroid.Model | |
| -keep class * extends com.activeandroid.serializer.TypeSerializer | |
| -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); | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment