|
| 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 | +} |
0 commit comments