2016-11-10 1 views
2

Dieses Mal habe ich dieses Problem, ich versuche, den aktuellen Geschmack in einem Skript zu erhalten. Ich habe die Antworten hier How to get current flavor in gradle ohne Glück versucht.Wie Android-Flavour-Name in Gradle-Skript ausgeführt wird

I haven in einigen Antworten gesehen, die sie verwenden

// Get all flavors 
android.productFlavors.all { flavor -> 
if (flavor.name.equals("flavorName")) { 
    // do what you like 
} 
// ... 
} 

Aber auch habe ich kein Glück mit, dass, weil ich erhalte den folgenden Fehler:> konnte nicht unbekannte Eigenschaft ‚Android‘ für Aufgabe bekommen

Also ich weiß nicht, wie man den aktuellen Geschmack bekommt, jede Hilfe wird sehr geschätzt werden, danke !!!

EDIT: Was ich tun muss, ist ein Stück Code, der für jeden Geschmack unterschiedlich ist auszuführen, meine aktuelle Idee ist, die ausgewählte Build-Variante zu kennen, um dies in einer Aufgabe zu tun, aber wenn es anders geht wäre das perfekt?

+0

"Ich versuche, den aktuellen Geschmack in einem Großbuchstaben-Skript zu bekommen" - es gibt keinen "aktuellen Geschmack". Eine 'build.gradle' Datei erstellt Ihre App nicht. Es erstellt ein Objektmodell, das beschreibt, wie Sie Ihre App erstellen. Das Skript wird ausgeführt, wenn Sie Ihr Projekt öffnen oder wenn Sie Ihr Projekt mit Ihren Gradle-Build-Dateien synchronisieren, und zu diesem Zeitpunkt sind alle Varianten "aktuell". "weil ich den folgenden Fehler erhalte" - dann hast du diesen Code vielleicht an der falschen Stelle. Bearbeiten Sie Ihre Frage und veröffentlichen Sie die gesamte Datei 'build.gradle'. – CommonsWare

+0

Wo haben Sie die Codezeilen eingefügt? Welche build.cradle Datei? –

+0

Ich habe die Codezeilen an der falschen Stelle hinzugefügt und deshalb habe ich diesen Fehler bekommen, danke! aber ich habe immer noch die frage, wie könnte ich die ausgewählte build-variante oder falvor für das projekt in einer grandle task ausgewählt ?? – acabezas

Antwort

0

Sie können diesen Fehler erhalten, wenn Sie es aus "Android" Schließung auf App Level Gradle Skript verwenden. Stellen Sie sicher, dass Sie es in

+0

Sie waren richtig Ich benutze es außerhalb der Android-Schließung, aber das Problem bleibt, wie kann ich die ausgewählte Build-Variante für das Projekt in einer Großtarget-Aufgabe kennen? – acabezas

+0

Wenn ich das korrekte aktuelle Projektgeschmack verstanden habe, finden Sie in der Registerkarte Build Variant. Wenn Sie Android Studio verwenden öffnen Sie Build -> Wählen Sie Build-Variante ... –

+0

das ist richtig, aber ich würde gerne die Build-Variante in einer Großtastatur Aufgabe, weil abhängig von der ausgewählten Geschmack muss ich verschiedene Dinge tun – acabezas

0

verwende ich gepostet bereits eine funktionierende Lösung here, das heißt:

Die folgende Funktion gibt genau den aktuellen Geschmack Namen:

def getCurrentFlavor() { 
    Gradle gradle = getGradle() 
    String tskReqStr = gradle.getStartParameter().getTaskRequests().toString() 

    Pattern pattern; 

    if(tskReqStr.contains("assemble")) 
     pattern = Pattern.compile("assemble(\\w+)(Release|Debug)") 
    else 
     pattern = Pattern.compile("generate(\\w+)(Release|Debug)") 

    Matcher matcher = pattern.matcher(tskReqStr) 

    if(matcher.find()) 
     return matcher.group(1).toLowerCase() 
    else 
    { 
     println "NO MATCH FOUND" 
     return ""; 
    } 
} 

Sie müssen auch

import java.util.regex.Matcher 
import java.util.regex.Pattern 

am Anfang oder Ihr Skript. In Android Studio funktioniert das mit Kompilieren mit "Make Project" oder "Debug App".

Verwandte Themen