# Annotations are implemented as attributes, so we have to explicitly keep them. # Catch all which encompasses attributes like RuntimeVisibleParameterAnnotations # and RuntimeVisibleTypeAnnotations -keepattributes RuntimeVisible*Annotation* # JNI is an entry point that's hard to keep track of, so there's # an annotation to mark fields and methods used by native code. # Keep the annotations that proguard needs to process. -keep class com.google.android.apps.common.proguard.UsedBy* # Just because native code accesses members of a class, does not mean that the # class itself needs to be annotated - only annotate classes that are # referenced themselves in native code. -keep @com.google.android.apps.common.proguard.UsedBy* class * { (); } -keepclassmembers class * { @com.google.android.apps.common.proguard.UsedBy* *; }