Skip to content

[Bug]: App crashes on Android when minifyEnabled true聽#8587

Closed

Description

@HarelM

Capacitor Version

Capacitor Doctor 馃拪

Latest Dependencies:

@capacitor/cli: 8.5.1
@capacitor/core: 8.5.1
@capacitor/android: 8.5.1
@capacitor/ios: 8.5.1

Installed Dependencies:

@capacitor/cli: 8.5.1
@capacitor/android: 8.5.1
@capacitor/core: 8.5.1
@capacitor/ios: 8.5.1

[success] iOS looking great! 馃憣
[success] Android looking great! 馃憣

Other API Details

npm: 11.13.0
node: v24.16.0

Platforms Affected

  • iOS
  • Android
  • Web

Current Behavior

Plugins crashes on production builds when obfuscation is enabled, which is now required for feb 2027.

Expected Behavior

No crashes

Project Reproduction

https://github.com/IsraelHikingMap/Site/tree/main/IsraelHiking.Web

Additional Information

I've played around with it and the following rules have solved it:
For all related plugin that uses permissions:

-keep @interface com.getcapacitor.**

The following is needed for the camera plugin, let me know if you want me to open a different issue:

# The camera plugin carries its parameters and its results between the app and the editor as gson
# objects, and neither gson nor the ioncamera-android library that uses it ships rules of its own.
# Gson works over these classes by reflection: it needs the fields to still be there to fill them,
# the @SerializedName on each one to know which json key it answers to, and the generic signature
# of a TypeToken to know what it is building - none of which R8 can see is used. These are gson's
# own documented rules.
-keepattributes Signature
-dontwarn sun.misc.**
-keepclassmembers,allowobfuscation class * {
    @com.google.gson.annotations.SerializedName <fields>;
}
-keep,allowobfuscation,allowshrinking class com.google.gson.reflect.TypeToken
-keep,allowobfuscation,allowshrinking class * extends com.google.gson.reflect.TypeToken
-keep class * extends com.google.gson.TypeAdapter
-keep class * implements com.google.gson.TypeAdapterFactory
-keep class * implements com.google.gson.JsonSerializer
-keep class * implements com.google.gson.JsonDeserializer

If there's more information you'd like me to check please let me know.

Activity

  1. added theissue type on Sep 3, 2026
  2. changed the title [-][Bug]: App crashes on Android when[/-] [+][Bug]: App crashes on Android when minifyEnabled true[/+] on Sep 3, 2026
  3. OS-pedrogustavobilro commented on Sep 7, 2026

    @OS-pedrogustavobilro
    Contributor

    Hey @HarelM thanks for opening the issue! Just wanted to let you know we are aware of Play Store's upcoming requirement for code optimization thresholds, and are looking into Capacitor app minification, including missing proguard rules (on both Capacitor and Plugins).

  4. HarelM commented on Oct 14, 2026

    @HarelM
    Author

    Nice! Thanks! Which version should support this?

  5. OS-pedrogustavobilro commented on Oct 14, 2026

    @OS-pedrogustavobilro
    Contributor

    We have this additional PR with more proguard rules #8657

    We also plan to add different rules for specific plugins of ours that need them.

    Note: From our tests, we didn't need to add the GSON notes for the camera plugin, but we'll be re-reviewing and testing and if needed we'll add them to the camera plugin.

    The additional proguard rules, should be patch releases for Capacitor 8 and respective current plugin versions for Capacitor 8.

    The use of AGP 9 and setting minifyEnabled to true by default, will only happen in Capacitor 9, as those are breaking changes.

  6. HarelM commented on Oct 14, 2026

    @HarelM
    Author

    Thanks for the update, I'll try to remove the rules I added after three next release and open the relevant issue if needed.

  7. HarelM commented on Oct 18, 2026

    @HarelM
    Author

    Also worth mentioning that if gson is no longer used, it might be worth removing the dependency from there:
    https://github.com/ionic-team/capacitor-camera/blob/7e001d43dc219af791bbde40fada8d28511d59d4/android/build.gradle#L95

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions