Quelle saveur de produit Android Studio construit-il par défaut dans build.gradle?

160

Nous avons un projet Android qui utilise le nouveau système de construction Gradle, et nous utilisons Android Studio comme outil de développement. Lorsque plusieurs build.gradleversions de produits sont spécifiées dans , nous remarquons qu'Android Studio crée la première spécifiée par ordre alphabétique. Existe-t-il un moyen de dire à Android Studio de créer et de tester uniquement une saveur de produit spécifique pendant le développement?

Joe
la source

Réponses:

334

En bas à gauche de la fenêtre Studio, il y a une vue ancrée appelée "Build Variants".

Ouvrez-le et choisissez la variante sur laquelle vous souhaitez travailler. Cela aura un impact sur la variante construite, mais également sur les dossiers source activés, ce qui conduira à l'achèvement dans les éditeurs de code et de ressources.

Xavier Ducrohet
la source
15
Cool. Existe-t-il un moyen de personnaliser celui qu'il préfère lors de l'importation initiale?
Joe
3
Je ne pense pas. Je peux demander à l'ingénieur qui l'a fait si nous pouvons ajouter ceci. Mais cela est susceptible d'être différent par projet si vous avez des saveurs.
Xavier Ducrohet
34
Les variantes sont une combinaison de saveur (s) et de types de construction. Vous ne pouvez déployer que des variantes. Vous ne pouvez jamais créer un apk qui n'est qu'une saveur.
Xavier Ducrohet
5
Si vous êtes intéressé, vous pouvez utiliser la ligne de commande pour construire la variante spécifiée: ./gradlew assemble <Flavor1> <Flavor2> <...> <BuildType>, par exemple assembleGooglePlayRelease. Et vous pouvez créer et installer sur un appareil connecté ou un émulateur en utilisant: ./gradlew install <Flavor1> <Flavor2> <...> <BuildType>
Deepscorn
5
Mais avec quelle saveur de produit, Android Studio construit-il l'application par défaut?
Malwinder Singh
20

Actuellement, il ne semble y avoir aucun moyen de sélectionner la saveur par défaut. Il y a une demande de fonctionnalité dans Android Issue Tracker pour cela:

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

Vous pouvez marquer / voter la demande, ce qui lui donne une priorité plus élevée sur le backlog des outils de développement Android.

Anton Tananaev
la source
3
cette fonctionnalité sera dans Android Studio 3.5. NO JOKE - cela a pris 5 ans à mettre en œuvre !! (regardez la date de création du ticket)
Someone Somewhere
4

Oui, il y a un moyen:

android {
    productFlavors {
        foo {
            isDefault true
        }
    }
}

Et sinon, les variantes avec le type de build debug sont favorisées.

Il a été ajouté dans Android Studio 3.5, voir la demande de fonctionnalité :

"Inclus dans Android Gradle Plugin 3.5.0-alpha08 et Android Studio 3.5 Canary 8 [3.5.0.7].

L'heuristique des projets utilisant des AGP plus anciens et des projets sans paramètres explicites a également été mise à jour pour favoriser les variantes avec le débogage de type de construction, comme décrit dans le message de validation. "

user3556812
la source
-1

Vous pouvez spécifier la commande exécuter dans la section Avant de lancer Gradle-aware Make

Vous pouvez répertorier toutes les tâches de gradation par gradlew tasks

entrez la description de l'image ici

Tshunglee
la source
J'ai essayé cela et bien que cela n'entraîne certainement la création d'une seule saveur, Android Studio ne lancera toujours que la variante sélectionnée. Pire encore, si je sélectionne une activité spécifique ne faisant pas partie de la variante sélectionnée, j'obtiens un message d'erreur déroutant disant "l'activité doit être exportée ou contenir un filtre d'intention". L'erreur disparaît une fois que je change la sélection de la variable de construction.
Dagmar