androidflutterdartapp-bundle

My Flutter app bundle size suddenly increase to 139MB from 19.4MB?


My Flutter app bundle size jumped from 19.4MB in the last release to 139.6MB in the latest build.

Flutter version: 3.22.5

Only bug fixes were made — no major updates, no new images or assets added

1-minifyEnabled and shrinkResources are enabled

2-Removed debugSymbolLevel 'FULL'

👇👇

    release {

            minifyEnabled true              // obfuscate code and remove unused code
            shrinkResources true            // shrink and remove unused resources


            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            ndk {
                debugSymbolLevel 'FULL'
            }

            signingConfig signingConfigs.debug

            debuggable false                // make app non-debuggable
            crunchPngs true                 // shrink images
            jniDebuggable false
            renderscriptDebuggable false
            pseudoLocalesEnabled false
            zipAlignEnabled true
        }

The release APK is still around 20MB for arm64.**

Flutter Doctor: 👇👇

[√] Flutter (Channel stable, 3.32.5, on Microsoft Windows [Version 10.0.19043.2364], locale en-US) [521ms]
    • Flutter version 3.32.5 on channel stable at E:\SDK\sdk\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision fcf2c11572 (4 weeks ago), 2025-06-24 11:44:07 -0700
    • Engine revision dd93de6fb1
    • Dart version 3.8.1
    • DevTools version 2.45.1

[√] Windows Version (10 Pro 64-bit, 21H1, 2009) [1,501ms]

[√] Android toolchain - develop for Android devices (Android SDK version 35.0.0) [6.6s]
    • Android SDK at E:/SDK/sdk
    • Platform android-35, build-tools 35.0.0
    • ANDROID_HOME = E:/SDK/sdk
    • Java binary at: C:\Program Files\Android\Android Studio\jbr\bin\java
      This is the JDK bundled with the latest Android Studio installation on this machine.
      To manually set the JDK path, use: `flutter config --jdk-dir="path/to/jdk"`.
    • Java version OpenJDK Runtime Environment (build 21.0.5+-13047016-b750.29)
    • All Android licenses accepted.

[√] Chrome - develop for the web [22ms]
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[X] Visual Studio - develop Windows apps [20ms]
    X Visual Studio not installed; this is necessary to develop Windows apps.
      Download at https://visualstudio.microsoft.com/downloads/.
      Please install the "Desktop development with C++" workload, including all of its default components

[√] Android Studio (version 2024.2) [17ms]
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 21.0.5+-13047016-b750.29)

[√] VS Code (version 1.100.2) [15ms]
    • VS Code at C:\Users\sukaina\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension can be installed from:
       https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[√] Connected device (3 available) [268ms]
    • Windows (desktop) • windows • windows-x64    • Microsoft Windows [Version 10.0.19043.2364]
    • Chrome (web)      • chrome  • web-javascript • Google Chrome 138.0.7204.158
    • Edge (web)        • edge    • web-javascript • Microsoft Edge 138.0.3351.95

[√] Network resources [753ms]
    • All expected network resources are available.

! Doctor found issues in 1 category.
Process finished with exit code 0

I built the app bundle using:

 flutter build appbundle --release

I also built a release APK for a single ABI to compare sizes:

flutter build apk --release --target-platform android-arm64 --analyze-size


Solution

  • Recently I experienced same thing. At first I was surprised too. Like you said the size of the AppBundle has increased significantly, while the .apk files didn't reflect anything like that. I can tell you one thing that I found out - "app bundle has started packaging more information that it used to". I can give you one example. Previously, after we uploaded a new version of AppBundle to the Play Console, we would have to manually upload the native debug symbols archived in a .zip file. Newer releases of Flutter seem to be packaging the native debug symbols in the AppBundle itself. I realized this when I tried to upload the compressed .so libraries to the Play Console: that I no longer need to do this separately as Play Console showed the debug symbols were already uploaded.

    I guess what you are noticing is similar. Did you have to upload the native debug symbols separately this time? My guess is no. If you were not used to uploading the debug symbols to play console, you can check its status for any release of your app.

    Steps to see if native debug symbols was uploaded:

    1. Log in to your Google Play Console.
    2. Select your app from the list of apps.
    3. Click Test and release.
    4. Select Latest releases and bundles.
    5. For any version of your app, click on the -> (arrow) icon at the end of line. You might have to do this once again in the screen that appeared.
    6. Then you will be able to explore the app bundle for information such as Details, Downloads, Delivery under respective tabs.
    7. Now, to see if debug symbols were uploaded, click on Downloads tab, and see below for native debug symbols information. You will see for newer versions, you won't have to separately archive the debug symbols yourself and upload it separately each time you upload a new version of app bundle.