From bc97628dd5cb92c186a48273cc335a23380e84be Mon Sep 17 00:00:00 2001 From: Christoffer Adamsen Date: Mon, 6 Jan 2025 13:00:46 +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: I58cf6b4286f696ea38290d888f20c8dcf18b9ede --- proguard.flags | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/proguard.flags b/proguard.flags index d1c97f36da5..4ac544a7e47 100644 --- a/proguard.flags +++ b/proguard.flags @@ -6,7 +6,10 @@ -keepattributes Exceptions # Keep all Fragments in this package, which are used by reflection. --keep public class com.android.settings*.** extends androidx.fragment.app.Fragment +# TODO(b/373579455): Evaluate if needs to be kept. +-keep public class com.android.settings*.** extends androidx.fragment.app.Fragment { + void (); +} # Keep all preference controllers needed by slice and DashboardFragment. -keep class * extends com.android.settings.core.BasePreferenceController { @@ -49,7 +52,10 @@ public static ** SEARCH_INDEX_DATA_PROVIDER; public static ** SUMMARY_PROVIDER_FACTORY; } --keep class androidx.core.app.CoreComponentFactory +# TODO(b/373579455): Evaluate if needs to be kept. +-keep class androidx.core.app.CoreComponentFactory { + void (); +} # Keep classes that implements CustomSliceable, which are used by reflection. -keepclasseswithmembers class * implements com.android.settings.slices.CustomSliceable {