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