1# Copied from http://google3/java/com/google/android/apps/common/proguard/base.flags 2 3# This file is intended to contain proguard options that *nobody* would ever 4# not want, in *any* configuration - they ensure basic correctness, and have 5# no downsides. You probably do not want to make changes to this file. 6 7# The presence of both of these attributes causes dalvik and other jvms to print 8# stack traces on uncaught exceptions, which is necessary to get useful crash 9# reports. 10-keepattributes SourceFile,LineNumberTable 11 12# Preverification was introduced in Java 6 to enable faster classloading, but 13# dex doesn't use the java .class format, so it has no benefit and can cause 14# problems. 15-dontpreverify 16 17# Skipping analysis of some classes may make proguard strip something that's 18# needed. 19-dontskipnonpubliclibraryclasses 20 21# Case-insensitive filesystems can't handle when a.class and A.class exist in 22# the same directory. 23-dontusemixedcaseclassnames 24 25# This prevents the names of native methods from being obfuscated and prevents 26# UnsatisfiedLinkErrors. 27-keepclasseswithmembernames class * { 28 native <methods>; 29} 30 31# hackbod discourages the use of enums on android, but if you use them, they 32# should work. Allow instantiation via reflection by keeping the values method. 33-keepclassmembers enum * { 34 public static **[] values(); 35} 36 37# Parcel reflectively accesses this field. 38-keepclassmembers class * implements android.os.Parcelable { 39 public static *** CREATOR; 40} 41 42# These methods are needed to ensure that serialization behaves as expected when 43# classes are obfuscated, shrunk, and/or optimized. 44-keepclassmembers class * implements java.io.Serializable { 45 static final long serialVersionUID; 46 private static final java.io.ObjectStreamField[] serialPersistentFields; 47 private void writeObject(java.io.ObjectOutputStream); 48 private void readObject(java.io.ObjectInputStream); 49 java.lang.Object writeReplace(); 50 java.lang.Object readResolve(); 51} 52 53# Don't warn about Guava. Any Guava-using app will fail the proguard stage without this dontwarn, 54# and since Guava is so widely used, we include it here in the base. 55-dontwarn com.google.common.** 56 57# Don't warn about Error Prone annotations (e.g. @CompileTimeConstant) 58-dontwarn com.google.errorprone.annotations.** 59 60# Based on http://ag/718466: android.app.Notification.setLatestEventInfo() was 61# removed in MNC, but is still referenced (safely) by the NotificationCompat 62# code. 63-dontwarn android.app.Notification 64 65# Silence notes about dynamically referenced classes from AOSP support 66# libraries. 67-dontnote android.graphics.Insets 68 69# AOSP support library: ICU references to gender and plurals messages. 70-dontnote libcore.icu.ICU 71-keep class libcore.icu.ICU { *** get(...);} 72 73# AOSP support library: Handle classes that use reflection. 74-dontnote android.support.v4.app.NotificationCompatJellybean 75