1*fb508042SAndroid Build Coastguard Worker# Note: We intentionally don't add the flags we'd need to make Flags and Enums 2*fb508042SAndroid Build Coastguard Worker# work. That's because the Proguard configuration required to make them work on 3*fb508042SAndroid Build Coastguard Worker# optimized code would preclude lots of optimization, like converting enums 4*fb508042SAndroid Build Coastguard Worker# into ints. 5*fb508042SAndroid Build Coastguard Worker 6*fb508042SAndroid Build Coastguard Worker# Throwables uses internal APIs for lazy stack trace resolution 7*fb508042SAndroid Build Coastguard Worker-dontnote sun.misc.SharedSecrets 8*fb508042SAndroid Build Coastguard Worker-keep class sun.misc.SharedSecrets { 9*fb508042SAndroid Build Coastguard Worker *** getJavaLangAccess(...); 10*fb508042SAndroid Build Coastguard Worker} 11*fb508042SAndroid Build Coastguard Worker-dontnote sun.misc.JavaLangAccess 12*fb508042SAndroid Build Coastguard Worker-keep class sun.misc.JavaLangAccess { 13*fb508042SAndroid Build Coastguard Worker *** getStackTraceElement(...); 14*fb508042SAndroid Build Coastguard Worker *** getStackTraceDepth(...); 15*fb508042SAndroid Build Coastguard Worker} 16*fb508042SAndroid Build Coastguard Worker 17*fb508042SAndroid Build Coastguard Worker# FinalizableReferenceQueue calls this reflectively 18*fb508042SAndroid Build Coastguard Worker# Proguard is intelligent enough to spot the use of reflection onto this, so we 19*fb508042SAndroid Build Coastguard Worker# only need to keep the names, and allow it to be stripped out if 20*fb508042SAndroid Build Coastguard Worker# FinalizableReferenceQueue is unused. 21*fb508042SAndroid Build Coastguard Worker-keepnames class com.google.common.base.internal.Finalizer { 22*fb508042SAndroid Build Coastguard Worker *** startFinalizer(...); 23*fb508042SAndroid Build Coastguard Worker} 24*fb508042SAndroid Build Coastguard Worker# However, it cannot "spot" that this method needs to be kept IF the class is. 25*fb508042SAndroid Build Coastguard Worker-keepclassmembers class com.google.common.base.internal.Finalizer { 26*fb508042SAndroid Build Coastguard Worker *** startFinalizer(...); 27*fb508042SAndroid Build Coastguard Worker} 28*fb508042SAndroid Build Coastguard Worker-keepnames class com.google.common.base.FinalizableReference { 29*fb508042SAndroid Build Coastguard Worker void finalizeReferent(); 30*fb508042SAndroid Build Coastguard Worker} 31*fb508042SAndroid Build Coastguard Worker-keepclassmembers class com.google.common.base.FinalizableReference { 32*fb508042SAndroid Build Coastguard Worker void finalizeReferent(); 33*fb508042SAndroid Build Coastguard Worker} 34