[android_intent_plus] Package may cause release builds to crash
System info
Platform the Issue occurs on: Android Plugin name: android_intent_plus Plugin version: any
Steps to Reproduce
-
Create a flutter project
- Must have a dependency that depends on the default proguard rules provided by the Android Gradle Plugin, like androidx.Room
-
Enable minification of Android release builds
-
Build release apk and run, it works
-
Add
android_intent_plusto project dependencies -
Build release apk and run
-
App crashes
See https://github.com/flutter/flutter/issues/92548#issuecomment-984148512 for more details. Note: This issue affects any plugin with a name that comes before "app" alphabetically.
Proguard configuration
View diff
1,113d0
< # The proguard configuration file for the following section is $ROOT_PROJECT_PATH/build/app/intermediates/proguard-files/proguard-android.txt-4.1.0
< # This is a configuration file for ProGuard.
< # http://proguard.sourceforge.net/index.html#manual/usage.html
< #
< # Starting with version 2.2 of the Android plugin for Gradle, this file is distributed together with
< # the plugin and unpacked at build-time. The files in $ANDROID_HOME are no longer maintained and
< # will be ignored by new version of the Android plugin for Gradle.
<
< # Optimization is turned off by default. Dex does not like code run
< # through the ProGuard optimize steps (and performs some
< # of these optimizations on its own).
< # Note that if you want to enable optimization, you cannot just
< # include optimization flags in your own project configuration file;
< # instead you will need to point to the
< # "proguard-android-optimize.txt" file instead of this one from your
< # project.properties file.
< -dontoptimize
<
< -dontusemixedcaseclassnames
< -dontskipnonpubliclibraryclasses
< -verbose
<
< # Preserve some attributes that may be required for reflection.
< -keepattributes *Annotation*,Signature,InnerClasses,EnclosingMethod
<
< -keep public class com.google.vending.licensing.ILicensingService
< -keep public class com.android.vending.licensing.ILicensingService
< -keep public class com.google.android.vending.licensing.ILicensingService
< -dontnote com.android.vending.licensing.ILicensingService
< -dontnote com.google.vending.licensing.ILicensingService
< -dontnote com.google.android.vending.licensing.ILicensingService
<
< # For native methods, see http://proguard.sourceforge.net/manual/examples.html#native
< -keepclasseswithmembernames,includedescriptorclasses class * {
< native <methods>;
< }
<
< # Keep setters in Views so that animations can still work.
< -keepclassmembers public class * extends android.view.View {
< void set*(***);
< *** get*();
< }
<
< # We want to keep methods in Activity that could be used in the XML attribute onClick.
< -keepclassmembers class * extends android.app.Activity {
< public void *(android.view.View);
< }
<
< # For enumeration classes, see http://proguard.sourceforge.net/manual/examples.html#enumerations
< -keepclassmembers enum * {
< public static **[] values();
< public static ** valueOf(java.lang.String);
< }
<
< -keepclassmembers class * implements android.os.Parcelable {
< public static final ** CREATOR;
< }
<
< # Preserve annotated Javascript interface methods.
< -keepclassmembers class * {
< @android.webkit.JavascriptInterface <methods>;
< }
<
< # The support libraries contains references to newer platform versions.
< # Don't warn about those in case this app is linking against an older
< # platform version. We know about them, and they are safe.
< -dontnote android.support.**
< -dontnote androidx.**
< -dontwarn android.support.**
< -dontwarn androidx.**
<
< # This class is deprecated, but remains for backward compatibility.
< -dontwarn android.util.FloatMath
<
< # Understand the @Keep support annotation.
< -keep class android.support.annotation.Keep
< -keep class androidx.annotation.Keep
<
< -keep @android.support.annotation.Keep class * {*;}
< -keep @androidx.annotation.Keep class * {*;}
<
< -keepclasseswithmembers class * {
< @android.support.annotation.Keep <methods>;
< }
<
< -keepclasseswithmembers class * {
< @androidx.annotation.Keep <methods>;
< }
<
< -keepclasseswithmembers class * {
< @android.support.annotation.Keep <fields>;
< }
<
< -keepclasseswithmembers class * {
< @androidx.annotation.Keep <fields>;
< }
<
< -keepclasseswithmembers class * {
< @android.support.annotation.Keep <init>(...);
< }
<
< -keepclasseswithmembers class * {
< @androidx.annotation.Keep <init>(...);
< }
<
< # These classes are duplicated between android.jar and org.apache.http.legacy.jar.
< -dontnote org.apache.http.**
< -dontnote android.net.http.**
<
< # These classes are duplicated between android.jar and core-lambda-stubs.jar.
< -dontnote java.lang.invoke.**
<
< # End of content from $ROOT_PROJECT_PATH/build/app/intermediates/proguard-files/proguard-android.txt-4.1.0
130c17
< # The proguard configuration file for the following section is $ROOT_PROJECT_PATH/build/app/intermediates/aapt_proguard_file/stagingRelease/aapt_rules.txt
---
> # The proguard configuration file for the following section is $ROOT_PROJECT_PATH/android/app/build/intermediates/aapt_proguard_file/stagingRelease/aapt_rules.txt
239c126
< # End of content from $ROOT_PROJECT_PATH/build/app/intermediates/aapt_proguard_file/stagingRelease/aapt_rules.txt
---
> # End of content from $ROOT_PROJECT_PATH/android/app/build/intermediates/aapt_proguard_file/stagingRelease/aapt_rules.txt
This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 15 days
Not stale
This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 15 days
Still not stale
This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 15 days
Still not stale
This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 15 days