¿Qué sabor de producto crea Android Studio de forma predeterminada en build.gradle?

160

Tenemos un proyecto de Android que usa el nuevo sistema de compilación Gradle, y usamos Android Studio como herramienta de desarrollo. Cuando hay varios sabores de productos especificados build.gradle, notamos que Android Studio construye el primero especificado alfabéticamente. ¿Hay alguna manera de decirle a Android Studio que cree y pruebe solo un sabor de producto específico durante el desarrollo?

Joe
fuente

Respuestas:

334

En la parte inferior izquierda de la ventana de Studio hay una vista acoplada llamada "Variantes de compilación".

Ábrelo y elige la variante en la que quieras trabajar. Esto afectará qué variante se crea, pero también las carpetas de origen habilitadas, lo que impulsará la finalización en editores de código y recursos.

Xavier Ducrohet
fuente
15
Frio. ¿Hay alguna forma de personalizar cuál prefiere en la importación inicial?
Joe
3
No lo creo. Puedo preguntarle al ingeniero que lo hizo si podemos agregar esto. Pero es probable que esto sea diferente por proyecto si tienes sabores.
Xavier Ducrohet
34
Las variantes son una combinación de sabor (es) y tipos de construcción. Solo puede implementar variantes. Nunca puedes construir un apk que sea solo un sabor.
Xavier Ducrohet
55
Si está interesado, puede usar la línea de comandos para construir la variante especificada: ./gradlew assemble <Flavor1> <Flavor2> <...> <BuildType>, por ejemplo assembleGooglePlayRelease. Y puede compilar e instalar en un dispositivo o emulador conectado usando: ./gradlew install <Flavor1> <Flavor2> <...> <BuildType>
Deepscorn
55
Pero, ¿con qué sabor de producto, Android Studio crea la aplicación de forma predeterminada?
Malwinder Singh
20

Actualmente parece no haber forma de seleccionar el sabor predeterminado. Hay una solicitud de función en Android Issue Tracker para ello:

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

Puede destacar / votar la solicitud, por lo que obtiene una mayor prioridad en la acumulación de herramientas de desarrollo de Android.

Anton Tananaev
fuente
3
Esta característica estará en Android Studio 3.5. NO ES Broma - ¡esto tardó 5 años en implementarse! (mira la fecha de creación del boleto)
Alguien en algún lugar
4

Sí, hay una manera:

android {
    productFlavors {
        foo {
            isDefault true
        }
    }
}

Y de lo contrario, se prefieren las variantes con el tipo de compilación de depuración.

Se agregó en Android Studio 3.5, consulte la solicitud de características :

"Incluido en Android Gradle Plugin 3.5.0-alpha08 y Android Studio 3.5 Canary 8 [3.5.0.7].

La heurística para proyectos que usan AGP anteriores y proyectos sin configuraciones explícitas también se ha actualizado para favorecer variantes con la depuración de tipo de compilación, como se describe en el mensaje de confirmación ".

usuario3556812
fuente
-1

Puede especificar el comando ejecutar en la sección antes de iniciar Gradle-aware Make

Puede enumerar todas las tareas de Gradle por gradlew tasks

ingrese la descripción de la imagen aquí

Tshunglee
fuente
Probé esto y, aunque ciertamente da como resultado que solo se construya un sabor, Android Studio solo lanzará la variante seleccionada. Peor aún, si selecciono una Actividad específica que no está en la variante seleccionada, recibo un mensaje de error confuso que dice "la actividad debe exportarse o contener un filtro de intención". El error desaparece una vez que cambio la selección de construcción bariant.
Dagmar