plus_plugins icon indicating copy to clipboard operation
plus_plugins copied to clipboard

[android_intent_plus] Package may cause release builds to crash

Open doubleo2 opened this issue 3 years ago • 4 comments

System info

Platform the Issue occurs on: Android Plugin name: android_intent_plus Plugin version: any

Steps to Reproduce

  1. Create a flutter project

    • Must have a dependency that depends on the default proguard rules provided by the Android Gradle Plugin, like androidx.Room
  2. Enable minification of Android release builds

  3. Build release apk and run, it works

  4. Add android_intent_plus to project dependencies

  5. Build release apk and run

  6. 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

doubleo2 avatar Feb 25 '22 08:02 doubleo2

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

github-actions[bot] avatar May 31 '22 15:05 github-actions[bot]

Not stale

doubleo2 avatar May 31 '22 18:05 doubleo2

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

github-actions[bot] avatar Aug 30 '22 00:08 github-actions[bot]

Still not stale

doubleo2 avatar Aug 30 '22 08:08 doubleo2

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

github-actions[bot] avatar Dec 28 '22 00:12 github-actions[bot]

Still not stale

doubleo2 avatar Jan 06 '23 02:01 doubleo2

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

github-actions[bot] avatar Apr 08 '23 00:04 github-actions[bot]