From 8e472f1b529eca4cad496deb6e95e9c9974fa6c2 Mon Sep 17 00:00:00 2001 From: Chace Daniels Date: Wed, 14 Oct 2026 09:23:56 -0500 Subject: [PATCH 1/3] fix(android): add R8 keep rules for callbacks and AGP 9 --- android/capacitor/proguard-rules.pro | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/android/capacitor/proguard-rules.pro b/android/capacitor/proguard-rules.pro index 4fe4e3f2e..5b985e275 100644 --- a/android/capacitor/proguard-rules.pro +++ b/android/capacitor/proguard-rules.pro @@ -21,6 +21,16 @@ -keep @interface com.getcapacitor.annotation.** { *; } -keep @interface com.getcapacitor.PluginMethod { *; } +# Callback methods are found by reflection, including on non-public base classes. +-keepclassmembers class * extends com.getcapacitor.Plugin { + @com.getcapacitor.annotation.ActivityCallback ; + @com.getcapacitor.annotation.PermissionCallback ; +} + +# Room below 2.7 and firebase-components below 18.0.1 lose these constructors under AGP 9. +-keep class * extends androidx.room.RoomDatabase { void (); } +-keep class * implements com.google.firebase.components.ComponentRegistrar { void (); } + # Rules for Capacitor v2 plugins and annotations # These are deprecated but can still be used with Capacitor for now -keep @com.getcapacitor.NativePlugin public class * { From 921571da9d37d551ae0c285e7760f7f868c9fdf8 Mon Sep 17 00:00:00 2001 From: Chace Daniels Date: Wed, 14 Oct 2026 18:11:38 -0500 Subject: [PATCH 2/3] chore(android): fix Android Studio warnings on the AGP 9 keep rules --- android/capacitor/proguard-rules.pro | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/android/capacitor/proguard-rules.pro b/android/capacitor/proguard-rules.pro index 5b985e275..e3bc7135d 100644 --- a/android/capacitor/proguard-rules.pro +++ b/android/capacitor/proguard-rules.pro @@ -27,9 +27,10 @@ @com.getcapacitor.annotation.PermissionCallback ; } -# Room below 2.7 and firebase-components below 18.0.1 lose these constructors under AGP 9. --keep class * extends androidx.room.RoomDatabase { void (); } --keep class * implements com.google.firebase.components.ComponentRegistrar { void (); } +# Only for apps with Room below 2.7 or firebase-components below 18.0.1, which lose these constructors under AGP 9. +#noinspection ShrinkerUnresolvedReference +-keep class * extends androidx.room.RoomDatabase { (); } +-keep class * implements com.google.firebase.components.ComponentRegistrar { (); } # Rules for Capacitor v2 plugins and annotations # These are deprecated but can still be used with Capacitor for now From 80156e808f60a912c5b5f3b35fe9fc3209219b3d Mon Sep 17 00:00:00 2001 From: Chace Daniels Date: Wed, 21 Oct 2026 12:36:51 -0500 Subject: [PATCH 3/3] fix(android): remove Room and Firebase keep rules --- android/capacitor/proguard-rules.pro | 5 ----- 1 file changed, 5 deletions(-) diff --git a/android/capacitor/proguard-rules.pro b/android/capacitor/proguard-rules.pro index e3bc7135d..0ced27181 100644 --- a/android/capacitor/proguard-rules.pro +++ b/android/capacitor/proguard-rules.pro @@ -27,11 +27,6 @@ @com.getcapacitor.annotation.PermissionCallback ; } -# Only for apps with Room below 2.7 or firebase-components below 18.0.1, which lose these constructors under AGP 9. -#noinspection ShrinkerUnresolvedReference --keep class * extends androidx.room.RoomDatabase { (); } --keep class * implements com.google.firebase.components.ComponentRegistrar { (); } - # Rules for Capacitor v2 plugins and annotations # These are deprecated but can still be used with Capacitor for now -keep @com.getcapacitor.NativePlugin public class * {