Как получить доступ к дополнительным свойствам Gradle от Java? - PullRequest
2 голосов
/ 03 марта 2020

Я делаю несколько тестов эспрессо для своего приложения и взаимодействую с реальным API из моих тестов. Итак, я пытаюсь прочитать эти учетные данные API из некоторых переменных среды:

Допустим, я использую Netflix API. Я объявляю учетные данные в bash_profile на MA C:

export NETFLIX_ID='123'
export NETFLIX_TOKEN='xxx'
launchctl setenv NETFLIX_ID $NETFLIX_ID
launchctl setenv NETFLIX_TOKEN $NETFLIX_TOKEN

Теперь в Gradle я создаю некоторые дополнительные свойства, например:

ext {
  netflixId = System.getenv("NETFLIX_ID")
  netflixToken = System.getenv("NETFLIX_TOKEN")
}

Если я печатаю netflixId и netflixToken учетные данные напечатаны правильно, то есть System.getenv() работает.

Сейчас я пытаюсь прочитать эти дополнительные свойства из кода Java. Вы знаете, есть ли способ сделать это? или лучший подход? любая помощь будет оценена

1 Ответ

2 голосов
/ 03 марта 2020

Вы можете встроить значения переменных среды в ваше приложение. Вы можете поместить их в поля конфигурации сборки в build.gradle:

android {
    defaultConfig {
        buildConfigField "String", "NETFLIX_ID", "\"" + System.getenv('NETFLIX_ID') + "\""
    }
}

Эти значения затем окажутся в сгенерированном классе BuildConfig времени компиляции в пакете, соответствующем пакету AndroidManifest этого модуля gradle, и вы можете затем используйте BuildConfig.NETFLIX_ID для использования значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...