web-dev-qa-db-fra.com

Gradle buildConfigField avec variable entière

Je voudrais définir une configuration de dépôt déposée où je peux utiliser une variable définie dans le script gradle lui-même:

def someVar = 512
Android {
...
    buildConfigField 'int', 'SOME_INT_FIELD',  someVar
}

Mais cela produit l'erreur suivante:

Erreur: (25, 0) Méthode DSL Gradle introuvable: 'buildConfigField ()'

Causes possibles:

  • Le projet 'PROJECT' peut utiliser une version de Gradle qui ne contient pas la méthode.
  • Il manque peut-être un plug-in Gradle dans le fichier de construction.

Je pourrais utiliser des citations comme:

def someVar = 0
Android {
...
    buildConfigField 'int', 'SOME_INT_FIELD',  '"' + someVar + '"'
}

Mais cela vient à une erreur de compilation 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);

Quelqu'un a-t-il une meilleure solution ou est-ce que j'utilise mal buildConfigField?

(J'ai également essayé d'utiliser des parenthèses en combinaison avec l'une des possibilités ci-dessus.)

15
salcosand
def someVar = 100

buildConfigField 'int', 'SOME_INT_FIELD',  String.valueOf(someVar)

J'utilise ce qui précède pour résoudre la question, j'espère vous aider.

1
peerless2012