Я хотел бы определить накопление конфигурации подал, где я могу использовать переменную, определенную в Gradle сценарий по себе:Gradle buildConfigField с целой переменной
def someVar = 512
android {
...
buildConfigField 'int', 'SOME_INT_FIELD', someVar
}
Но это производит следующие ошибки:
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.
Я мог бы использовать кавычки, как:
def someVar = 0
android {
...
buildConfigField 'int', 'SOME_INT_FIELD', '"' + someVar + '"'
}
Но это приходит к ошибке компилятора в BuildConfig
// Fields from default config.
public static final int SOME_INT_FILED = "512";
Так что сейчас я остаюсь с:
def someVar = 0
android {
...
buildConfigField 'String', 'SOME_INT_FIELD', '"' + someVar + '"'
}
и использовать его как:
final int value = Integer.valueOf(BuildConfig.SOME_INT_FIELD);
У кого-нибудь есть лучшее решение или я неправильно использую buildConfigField?
(я также попытался с помощью круглых скобок в сочетании с любым из возможности выше.)
Спасибо, ключ, чтобы определить переменную как тип 'String', но использовать 'Int' для buildConfigField. Это делает ненужным кастинг и синтаксический анализ. Это то, что я искал. – salcosand