Welchen Produktgeschmack erstellt Android Studio standardmäßig in build.gradle?

160

Wir haben ein Android-Projekt, das das neue Gradle-Build-System verwendet, und wir verwenden Android Studio als Entwicklungswerkzeug. Wenn mehrere Produktvarianten in angegeben sind build.gradle, stellen wir fest, dass Android Studio die erste alphabetisch angegebene erstellt. Gibt es eine Möglichkeit, Android Studio anzuweisen, während der Entwicklung nur eine bestimmte Produktvariante zu erstellen und zu testen?

Joe
quelle

Antworten:

334

Unten links im Studio-Fenster befindet sich eine angedockte Ansicht mit dem Namen "Build Variants".

Öffnen Sie es und wählen Sie die Variante aus, an der Sie arbeiten möchten. Dies wirkt sich auf die erstellte Variante aus, aber auch auf die aktivierten Quellordner, wodurch die Fertigstellung in Code- und Ressourceneditoren verbessert wird.

Xavier Ducrohet
quelle
15
Cool. Gibt es eine Möglichkeit, anzupassen, welche beim ersten Import bevorzugt wird?
Joe
3
Das glaube ich nicht. Ich kann den Ingenieur, der es getan hat, fragen, ob wir dies hinzufügen können. Dies ist jedoch wahrscheinlich pro Projekt unterschiedlich, wenn Sie Geschmacksrichtungen haben.
Xavier Ducrohet
34
Varianten sind eine Kombination aus Geschmack (en) und Build-Typen. Sie können nur Varianten bereitstellen. Sie können nie eine apk bauen, die nur ein Geschmack ist.
Xavier Ducrohet
5
Wenn Sie interessiert sind, können Sie die Befehlszeile verwenden, um die angegebene Variante zu erstellen: ./gradlew assemble <Flavor1> <Flavor2> <...> <BuildType>, z. B. assembleGooglePlayRelease. Und Sie können auf einem angeschlossenen Gerät oder Emulator erstellen und installieren, indem Sie: ./gradlew <Flavor1> <Flavor2> <...> <BuildType>
Deepscorn
5
Aber mit welcher Produktvariante erstellt Android Studio die Anwendung standardmäßig?
Malwinder Singh
20

Derzeit scheint es keine Möglichkeit zu geben, den Standardgeschmack auszuwählen. Es gibt eine Funktionsanforderung in Android Issue Tracker dafür:

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

Sie können die Anfrage markieren / abstimmen, damit sie im Rückstand der Android-Entwicklungstools eine höhere Priorität erhält.

Anton Tananaev
quelle
3
Diese Funktion wird in Android Studio 3.5 verfügbar sein. KEIN WITZ - die Implementierung dauerte 5 Jahre !! (Sehen Sie sich das Datum der Ticketerstellung an)
Jemand irgendwo
4

Ja, es gibt einen Weg:

android {
    productFlavors {
        foo {
            isDefault true
        }
    }
}

Ansonsten werden Varianten mit dem Debug-Build-Typ bevorzugt.

Es wurde in Android Studio 3.5 hinzugefügt, siehe Funktionsanforderung :

"In Android Gradle Plugin 3.5.0-alpha08 und Android Studio 3.5 Canary 8 [3.5.0.7] enthalten.

Die Heuristik für Projekte mit älterem AGP und Projekte ohne explizite Einstellungen wurde ebenfalls aktualisiert, um Varianten mit dem Debug vom Build-Typ zu bevorzugen, wie in der Commit-Nachricht beschrieben. "

user3556812
quelle
-1

Sie können den Befehl Ausführen in Abschnitt Vor dem Start von Gradle-fähigem Make angeben

Sie können alle Gradle-Aufgaben nach auflisten gradlew tasks

Geben Sie hier die Bildbeschreibung ein

Tshunglee
quelle
Ich habe es versucht und obwohl es sicherlich dazu führt, dass nur eine Variante erstellt wird, wird Android Studio immer noch nur die ausgewählte Variante starten. Schlimmer noch, wenn ich eine bestimmte Aktivität auswähle, die nicht in der ausgewählten Variante enthalten ist, wird eine verwirrende Fehlermeldung angezeigt, die besagt, dass die Aktivität exportiert werden muss oder einen Absichtsfilter enthält. Der Fehler verschwindet, sobald ich die Build-Bariant-Auswahl ändere.
Dagmar