-optimizationpasses 5 -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -dontpreverify -verbose -optimizations !code/simplification/arithmetic,!field/*,!class/merging/*,!code/allocation/variable -dontwarn android.support.** -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 com.android.vending.licensing.ILicensingService -keepclasseswithmembernames class * { native <methods>; } -keepclasseswithmembernames class * { public <init>(android.content.Context, android.util.AttributeSet); } -keepclasseswithmembernames class * { public <init>(android.content.Context, android.util.AttributeSet, int); } -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } -keep class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator *; } # Keep our own classes to keep stack traces readable. -keep class org.dmfs.** {*;} # Allow obfuscation of android.support.v7.internal.view.menu.** # to avoid problem on Samsung 4.2.2 devices with appcompat v21 # see https://code.google.com/p/android/issues/detail?id=78377 -keep class !android.support.v7.internal.view.menu.**,android.support.** {*;} # this is required to keep the Annotations for retention-magic and to keep the line numbers n stack traces -keepattributes *Annotation*,SourceFile,LineNumberTable # keep relevant members in Activities -keepclassmembers class * extends android.app.Activity { # optional, keep TAG fields if you use them for automatic namespacing # you don't need this line if don't use the "permanent" feature or # if you set the namespace like so: # @Retain(permanent = true, classNS = TAG) # or # @Retain(permanent = true, classNS = "someNameSpace") java.lang.String TAG; # optional, keep names of retained fields # you don't need this line if don't use the "permanent" feature or # if you set the key manually like in @Retain(key = "someKey"); @org.dmfs.android.retentionmagic.annotations.* <fields>; private long mId; } # same for Fragments -keepclassmembers class * extends android.app.Fragment { java.lang.String TAG; @org.dmfs.android.retentionmagic.annotations.* <fields>; private long mId; } # same for support library Fragments -keepclassmembers class * extends android.support.v4.app.Fragment { java.lang.String TAG; @org.dmfs.android.retentionmagic.annotations.* <fields>; private long mId; }