entier je voudrais définir une configuration de construction déposée où je peux utiliser une variable définie dans le script gradle elle-même:Gradle buildConfigField avec la variable
def someVar = 512
android {
...
buildConfigField 'int', 'SOME_INT_FIELD', someVar
}
Mais cela produit l'erreur suivante:
Error:(25, 0) Gradle DSL method not found: 'buildConfigField()'
Possible causes:
The project 'PROJECT' may be using a version of Gradle that does not contain the method. The build file may be missing a Gradle plugin.
Je pourrais utiliser des citations comme:
def someVar = 0
android {
...
buildConfigField 'int', 'SOME_INT_FIELD', '"' + someVar + '"'
}
Mais cela vient d'une erreur du compilateur dans buildconfig
// Fields from default config.
public static final int SOME_INT_FILED = "512";
Donc pour l'instant je reste avec:
def someVar = 0
android {
...
buildConfigField 'String', 'SOME_INT_FIELD', '"' + someVar + '"'
}
et l'utiliser comme:
final int value = Integer.valueOf(BuildConfig.SOME_INT_FIELD);
Est-ce que quelqu'un a une meilleure solution ou est-ce que j'utilise buildConfigField?
(j'ai aussi essayé d'utiliser entre parenthèses en combinaison avec l'une des possibilités ci-dessus.)
Merci, la clé est de définir la variable comme type de 'String', mais utiliser 'int' pour buildConfigField. Cela rend tout casting et analyse inutile. C'est ce que je cherchais. – salcosand