Ensure runtime-visible annotations are kept

With R8 full mode, these annotations must be explicitly kept as
attributes. Also keep annotation defaults as they may be used at
runtime.

Test: m + presubmit
Bug: 233746531
Merged-In: Ibab630cd8498c5789ebcad6785fda24967df4d61
Change-Id: Icf2cddf89d06d29bdbd000a8216d1b975b5f49d8
This commit is contained in:
zhidou
2022-08-10 14:48:23 +00:00
parent 17bfa62a87
commit 00ea5ee7f5

View File

@@ -2,6 +2,11 @@
# that isn't explicitly part of the API
-dontskipnonpubliclibraryclasses -dontskipnonpubliclibraryclassmembers
# Annotations are implemented as attributes, so we have to explicitly keep them.
# Keep all runtime-visible annotations like RuntimeVisibleParameterAnnotations
# and RuntimeVisibleTypeAnnotations, as well as associated defaults.
-keepattributes RuntimeVisible*Annotation*,AnnotationDefault
# For enumeration classes, see http://proguard.sourceforge.net/manual/examples.html#enumerations
-keepclassmembers enum * {
public static **[] values();