Skip to content

Android: building one flavor also runs compileFlutterBuild for another flavor #183296

Description

@kyungilcho

What package does this bug report belong to?

flutter_tools / Android Gradle integration

What target platforms are you seeing this bug on?

Android

Have you already upgraded your packages?

Yes. This reproduces on Flutter 3.41.2.

Dependency versions

Flutter 3.41.2
Dart 3.11.0
AGP 8.11.1
Gradle 8.13
Kotlin 2.1.0
JDK 21.0.5
macOS 15.7.3

Problem description

When building a flavored Android app, Flutter sometimes executes compileFlutterBuild for a different flavor during the same build.

In my case:

  • flutter build apk --debug --flavor dev also executes compileFlutterBuildProdDebug
  • flutter build apk --flavor dev also executes compileFlutterBuildProdRelease

This appears to be cross-flavor task contamination. I can reproduce it in a fresh Flutter Android app by adding only product flavors.

Steps to reproduce

  1. Create a new Flutter app:
flutter create --platforms=android flavor_repro
cd flavor_repro
  1. Add Android product flavors:
android {
    flavorDimensions "default"

    productFlavors {
        dev {
            dimension "default"
            applicationIdSuffix ".dev"
        }
        prod {
            dimension "default"
        }
    }
}
  1. Build the dev flavor:
flutter build apk --debug --flavor dev -v
flutter build apk --flavor dev -v

Expected results

When building devDebug or devRelease, only the dev Flutter compile task should run.

  • flutter build apk --debug --flavor dev should only execute compileFlutterBuildDevDebug
  • flutter build apk --flavor dev should only execute compileFlutterBuildDevRelease

Actual results

prod Flutter compile tasks are also executed during dev builds.

  • compileFlutterBuildProdDebug is executed during assembleDevDebug
  • compileFlutterBuildProdRelease is executed during assembleDevRelease

The expensive Flutter work actually runs twice, so this is not just a wrapper task duplication.

Code sample

The issue reproduces with only Android product flavors added. I do not need to add my own native code or my own externalNativeBuild block in the app config.

Logs

devDebug pulls prodDebug

Observed task path:

:app:assembleDevDebug
-> :app:packageDevDebug
-> :app:stripDevDebugDebugSymbols
-> :app:mergeDevDebugNativeLibs
-> :app:buildCMakeDebug[armeabi-v7a]
-> :app:packJniLibsflutterBuildProdDebug
-> :app:compileFlutterBuildProdDebug

Generated CMake task details:

configureCMakeDebug[armeabi-v7a]
variantName=prodDebug
abi=armeabi-v7a:prodDebug:app

devRelease pulls both prodRelease and devRelease

Observed task graph:

:app:compileFlutterBuildProdRelease
:app:packJniLibsflutterBuildProdRelease
:app:preProdReleaseBuild
...
:app:preDevReleaseBuild
:app:compileFlutterBuildDevRelease
:app:packJniLibsflutterBuildDevRelease

Observed timings from flutter build apk --flavor dev -v:

  • compileFlutterBuildProdRelease
    • kernel_snapshot_program: Complete in about 129s
    • "flutter assemble" took 176,669ms
  • compileFlutterBuildDevRelease
    • kernel_snapshot_program: Complete in about 48s
    • "flutter assemble" took 82,667ms

Observed timings from flutter build apk --debug --flavor dev -v:

  • compileFlutterBuildDevDebug
    • kernel_snapshot_program: Complete in about 78s
  • compileFlutterBuildProdDebug
    • kernel_snapshot_program: Complete in about 59s

Additional note

This issue does not appear symmetric.

  • dev builds pull prod Flutter compile tasks
  • prod builds do not pull dev Flutter compile tasks

For example, flutter build apk --debug --flavor prod -v only executed compileFlutterBuildProdDebug in my testing.

Flutter Doctor output

[✓] Flutter (Channel stable, 3.41.2, on macOS 15.7.3 24G419 darwin-arm64, locale en-KR)
    • Flutter version 3.41.2 on channel stable
    • Framework revision 90673a4eef (2026-02-18)
    • Engine revision 6c0baaebf7
    • Dart version 3.11.0
    • DevTools version 2.54.1

[✓] Android toolchain - develop for Android devices (Android SDK version 36.0.0)
    • Android SDK version 36.0.0
    • Java version OpenJDK Runtime Environment (build 21.0.5+-13047016-b750.29)

[!] Xcode - develop for iOS and macOS (Xcode 26.2)
    • CocoaPods installed but not working

[✓] Chrome - develop for the web

[✓] Connected device (6 available)

[✓] Network resources

Related issue

This looks related to #163591, but this report appears broader because:

  • I can reproduce it for debug and release
  • it appears to go through generated CMake/native packaging tasks
  • it reproduces even in a flavor-only Flutter app

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Important issues not at the top of the work listplatform-androidAndroid applications specificallyt: gradle"flutter build" and "flutter run" on Androidteam-androidOwned by Android platform teamtoolAffects the "flutter" command-line tool. See also t: labels.triaged-androidTriaged by Android platform team

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions