From 96af70814538da811a9e22f3f76d3ca16194f577 Mon Sep 17 00:00:00 2001 From: Christoffer Adamsen Date: Mon, 6 Jan 2025 12:57:13 +0100 Subject: [PATCH] Explicitly keep default constructor in rules without members R8 implicitly keeps the default constructor when no member rules are specified. Future versions of R8 will require apps to explicitly keep the default constructors that are required for the build to work. This conservatively changes all keep rules that currently keep the default constructor to explicitly keep the default constructor. Future work will attempt to tighten up the rules that do not require the default constructor to be kept. Bug: 373579455 Test: existing Change-Id: I46dc4b01c0ee38a7033d8f16419dac00fe414fb1 --- proguard.flags | 50 ++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 40 insertions(+), 10 deletions(-) diff --git a/proguard.flags b/proguard.flags index c5bbb42..5531a9c 100644 --- a/proguard.flags +++ b/proguard.flags @@ -17,7 +17,10 @@ -keepattributes SourceFile,LineNumberTable,*Annotation* # Keep classes and methods that have the guava @VisibleForTesting annotation --keep @com.google.common.annotations.VisibleForTesting class * +# TODO(b/373579455): Evaluate if needs to be kept. +-keep @com.google.common.annotations.VisibleForTesting class * { + void (); +} -keepclassmembers class * { @com.google.common.annotations.VisibleForTesting *; } @@ -26,19 +29,46 @@ -keep class com.android.messaging.*.*.* { *; } # Keep methods that have the @VisibleForAnimation annotation --keep @interface com.android.messaging.annotation.VisibleForAnimation +# TODO(b/373579455): Evaluate if needs to be kept. +-keep @interface com.android.messaging.annotation.VisibleForAnimation { + void (); +} -keepclassmembers class * { @com.android.messaging.annotation.VisibleForAnimation *; } --keep public class * extends android.app.Activity --keep public class * extends android.app.Application --keep public class * extends android.app.Service --keep public class * extends android.content.BroadcastReceiver --keep public class * extends android.content.ContentProvider --keep public class * extends android.app.backup.BackupAgentHelper --keep public class * extends android.preference.Preference --keep public class * extends androidx.fragment.app.Fragment +# TODO(b/373579455): Evaluate if needs to be kept. +-keep public class * extends android.app.Activity { + void (); +} +# TODO(b/373579455): Evaluate if needs to be kept. +-keep public class * extends android.app.Application { + void (); +} +# TODO(b/373579455): Evaluate if needs to be kept. +-keep public class * extends android.app.Service { + void (); +} +# TODO(b/373579455): Evaluate if needs to be kept. +-keep public class * extends android.content.BroadcastReceiver { + void (); +} +# TODO(b/373579455): Evaluate if needs to be kept. +-keep public class * extends android.content.ContentProvider { + void (); +} +# TODO(b/373579455): Evaluate if needs to be kept. +-keep public class * extends android.app.backup.BackupAgentHelper { + void (); +} +# TODO(b/373579455): Evaluate if needs to be kept. +-keep public class * extends android.preference.Preference { + void (); +} +# TODO(b/373579455): Evaluate if needs to be kept. +-keep public class * extends androidx.fragment.app.Fragment { + void (); +} -keep public class com.android.vcard.* { *; } -keep class androidx.collection.* { *; }