164
votes

We have an Android project that uses the new Gradle build system, and we use Android Studio as a development tool. When there are several product flavors specified in build.gradle, we notice that Android Studio builds the first one specified alphabetically. Is there a way to tell Android Studio to build and test only a specific product flavor during development?

6

6 Answers

351
votes

On the lower left of the Studio window there's a docked view called "Build Variants".

Open it and choose whichever variant you want to work on. This will impact which variant is built but also the enabled source folders, which will drive completion in code and resources editors.

20
votes

Currently there appears to be no way to select default flavor. There is a feature request in Android Issue Tracker for it:

https://code.google.com/p/android/issues/detail?id=64917

You can star/vote the request, so it gets higher priority on Android development tools backlog.

14
votes

Yes, there is a way:

android {
    productFlavors {
        foo {
            isDefault true
        }
    }
}

And otherwise variants with the debug build type are favoured.

It was added in Android Studio 3.5, see feature request:

"Included in Android Gradle Plugin 3.5.0-alpha08 and Android Studio 3.5 Canary 8 [3.5.0.7].

The heuristic for projects using older AGP and projects without explicit settings has also been updated to favour variants with the build type debug, as described in the commit message."

0
votes

What actually worked for me is enabling "Android Studio Preferences -> Experimental -> Only sync the active variant". After you select the desired build variant once, AS will keep the selected build variant when reopening or when re-syncing the project, basically solving the original problem.

AS/AGP v4.1.

0
votes

On latest of android studio, on menu bar, go to Build > Select build Variant, if it's greyed out (disabled), open the project directory and then open the app section then go to that button again. After you've clicked on it, it will open up a window on the sidebar called Build Variants, from there you can select which build variant you want to build, then click on debug and it will build the variant you selected.

-1
votes

You can specify the command run In Section Before launch Gradle-aware Make

You can list all gradle tasks by gradlew tasks

enter image description here