# Keep Flutter embedding and plugin registrant (important) -keep class io.flutter.embedding.** { *; } -keep class io.flutter.plugins.** { *; } -keep class io.flutter.plugin.** { *; } -keep class io.flutter.app.** { *; } # Keep Application / Activity if you customized them (replace with your package name) # -keep class com.yourcompany.yourapp.MainActivity { *; } # -keep class com.yourcompany.yourapp.** { *; } # Keep classes referenced from AndroidManifest via reflection or lifecycle -keepclassmembers class * { @android.webkit.JavascriptInterface ; public (android.content.Context, ...); } # Keep native entry points (JNI) if any (example) -keepclasseswithmembernames class * { native ; } # Keep classes that use reflection heavily (OKHttp/Retrofit/Gson) # Retrofit/OkHttp -keep class okhttp3.** { *; } -keep interface okhttp3.** { *; } -keep class retrofit2.** { *; } -keep interface retrofit2.** { *; } # Gson (models accessed by reflection) -keep class com.google.gson.** { *; } -keepattributes Signature -keepattributes *Annotation* # Keep Firebase (if you use it) -keep class com.google.firebase.** { *; } -keep class com.google.android.gms.** { *; } # WorkManager (if used) -keep class androidx.work.impl.background.systemjob.SystemJobService { *; } -keep class androidx.work.** { *; } # Room/DB entities - if you use Room, keep annotations and entity classes -keepclassmembers class * { @androidx.room.* ; } -keep class androidx.room.** { *; } # Keep classes loaded by reflection (e.g. through Class.forName) -keepclassmembers,includedescriptorclasses class * { public static ; public (...); } # Keep Kotlin metadata (for Kotlin reflection) -keep class kotlin.Metadata { *; } # Keep names of classes annotated with @Keep -keep @androidx.annotation.Keep class * { *; } -keepclassmembers class * { @androidx.annotation.Keep *; } # If using Gson TypeAdapterFactory via reflection -keepclassmembers class * { static ** typeAdapterFactory*(...); } # Don't remove debug/logging if you want (optional) #-keep class android.util.Log { *; } # Keep any generated plugin registrant classes if present (older projects) -keep class io.flutter.plugins.GeneratedPluginRegistrant { *; } # (Optional) Keep parcelable implementations if those are serialized dynamically -keep class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator *; }