Rules for some of the widely used Libraries
suggest changeCurrently it contains rules for following libraries:-
- ButterKnife
- RxJava
- Android Support Library
- Android Design Support Library
- Retrofit
- Gson and Jackson
- Otto
- Crashlitycs
- Picasso
- Volley
- OkHttp3
- Parcelable
#Butterknife -keep class butterknife.** { *; } -keepnames class * { @butterknife.Bind *;} -dontwarn butterknife.internal.** -keep class **$$ViewBinder { *; } -keepclasseswithmembernames class * { @butterknife.* <fields>; } -keepclasseswithmembernames class * { @butterknife.* <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; } # Support library -dontwarn android.support.** -dontwarn android.support.v4.** -keep class android.support.v4.** { *; } -keep interface android.support.v4.** { *; } -dontwarn android.support.v7.** -keep class android.support.v7.** { *; } -keep interface android.support.v7.** { *; } # support design -dontwarn android.support.design.** -keep class android.support.design.** { *; } -keep interface android.support.design.** { *; } -keep public class android.support.design.R$* { *; } # retrofit -dontwarn okio.** -keepattributes Signature -keepattributes *Annotation* -keep class com.squareup.okhttp.** { *; } -keep interface com.squareup.okhttp.** { *; } -dontwarn com.squareup.okhttp.** -dontwarn rx.** -dontwarn retrofit.** -keep class retrofit.** { *; } -keepclasseswithmembers class * { @retrofit.http.* <methods>; } -keep class sun.misc.Unsafe { *; } #your package path where your gson models are stored -keep class com.abc.model.** { *; } # Keep these for GSON and Jackson -keepattributes Signature -keepattributes *Annotation* -keepattributes EnclosingMethod -keep class sun.misc.Unsafe { *; } -keep class com.google.gson.** { *; } #keep otto -keepattributes *Annotation* -keepclassmembers class ** { @com.squareup.otto.Subscribe public *; @com.squareup.otto.Produce public *; } # Crashlitycs 2.+ -keep class com.crashlytics.** { *; } -keep class com.crashlytics.android.** -keepattributes SourceFile, LineNumberTable, *Annotation* # If you are using custom exceptions, add this line so that custom exception types are skipped during obfuscation: -keep public class * extends java.lang.Exception # For Fabric to properly de-obfuscate your crash reports, you need to remove this line from your ProGuard config: # -printmapping mapping.txt # Picasso -dontwarn com.squareup.okhttp.** # Volley -keep class com.android.volley.toolbox.ImageLoader { *; } # OkHttp3 -keep class okhttp3.** { *; } -keep interface okhttp3.** { *; } -dontwarn okhttp3.** # Needed for Parcelable/SafeParcelable Creators to not get stripped -keepnames class * implements android.os.Parcelable { public static final ** CREATOR; }
Found a mistake? Have a question or improvement idea?
Let me know.
Table Of Contents