guava
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 {
29void finalizeReferent();
30}
31-keepclassmembers class com.google.common.base.FinalizableReference {
32void finalizeReferent();
33}
34