Les dimensions de saveur du studio Android gradle ne fonctionnent pas correctement
J'ai deux dimensions d'une application, d'un appel, puis le vert et le bleu. Il n'y aura que ces deux dimensions, mais un nombre illimité de produits de saveurs. C'est la façon dont je suis le définissant dans gradle
flavorDimensions "green", "blue"
productFlavors {
one {
applicationId "com.app.green.one"
versionCode 1
versionName "1.0.0.1";
flavorDimension = "green"
}
two {
applicationId "com.app.blue.two"
versionCode 6
versionName "1.0.1";
flavorDimension = "blue"
}
}
Mais après j'ai sync gradle, dans la construction onglet variantes tout ce que je vois est oneTwoDebug et oneTwoRelease, où je devrais voir greenOneDebug greenOneRelease, blueTwoDebug, blueTwoRelease
En théorie, je veux l'étendre à quelque chose comme ceci
one {
applicationId "com.app.green.one"
versionCode 1
versionName "1.0.0.1";
flavorDimension = "green"
}
two {
applicationId "com.app.blue.two"
versionCode 6
versionName "1.0.1";
flavorDimension = "blue"
}
three {
applicationId "com.app.green.three"
versionCode 1
versionName "1.0.0.1";
flavorDimension = "green"
}
four {
applicationId "com.app.blue.four"
versionCode 6
versionName "1.0.1";
flavorDimension = "blue"
}
Dans ce cas, les dimensions représentent le "type" de l'application, puis les arômes sont plus pour les organisations qui peuvent être ajoutés.
**EDIT j'ai eu la mauvaise mise en place pour gradle comme l'a souligné ici est un portrait plus fidèle de ce que j'ai
flavorDimensions "type", "organization"
productFlavors {
blue {
applicationId "com.app.blue"
flavorDimension = "type"
versionCode 6
versionName "1.0.1";
}
red {
applicationId "com.app.red"
flavorDimension = "type"
versionCode 1
versionName "1.0.0.1";
}
company1 {
flavorDimension = "organization"
}
company2 {
flavorDimension = "organization"
}
}
Jusqu'à présent cela fonctionne, Donc je peux créer java répertoires source pour basculer types, mais que si je veux de l'organisation spécifique des fichiers de configuration, puis-je créer java source dirs pour chaque organisation ainsi?
source d'informationauteur Brian | 2015-06-15
Vous devez vous connecter pour publier un commentaire.
Je pense que vous avez mal compris le concept de flavorDimension.
Un flavorDimension est quelque chose comme un saveur catégorie et chaque combinaison de la saveur de chaque dimension sera de produire une variante.
Dans votre cas, vous devez définir un flavorDimension nommé "type" et une autre " dimension nommée "organisation".
Il va produire, pour chaque saveur dans la dimension "organisation" tout est possible "type" (ou la formulation duale : pour chaque "type", il va produire une variante pour chaque organisation).
La saveur dimensions définir la produit cartésien qui sera utilisé pour produire des variantes.
MODIFIER : je vais essayer de l'illustrer avec des pseudo-gradle code:
Nous allons définir un certain "type" : bronze, argent et or
Nous allons définir certaines organisations : customerA, customerB, customerC
Tous ceux qui sont productFlavorsmais ils appartiennent à 2 dimensions différentes:
Cette config va produire 18 (3*3*2) variantes (si vous avez les 2 standards de construction types : debug et release) :
or-customerA-debug ; or customerA la libération ; or customerB-debug ; or customerB la libération ; or customerC-debug ; or customerC la libération ;
argent-customerA-debug ; argent-customerA la libération ; argent-customerB-debug ; argent-customerB la libération ; argent-customerC-debug ; argent-customerC la libération ;
... (le même pour le bronze)
Noter que le nom de la dimension est totalement arbitraire et n'ont aucun impact sur les variantes de noms.
Saveur dimensions sont très puissants, mais si vous utilisez trop d'entre eux : il en résulte une hausse exponentielle du nombre de variantes (un poste construire propre tâche peut être utile de supprimer l'inutile ou le non-sens de la variante)