Следующий код - единственный, который мне удалось создать, и который удовлетворяет двум наиболее важным требованиям для обеспечения эффективного «импорта файлов стандартной среды UNIX» в Android Studio:
- Загружает файл, который зависит от типа сборки (по крайней мере: отладка и выпуск)
- Предоставляет указанные переменные среды в коде Android, фактически не как переменные среды, а как содержимое buildConfigFields.
ext {
node_env = ""
}
android.applicationVariants.all { variant ->
if (variant.name == "debug") {
project.ext.set("node_env", "development")
} else if (variant.name == "release") {
project.ext.set("node_env", "production")
}
file("." + node_env + '.env').readLines().each() {
if (!it.isEmpty() && !it.startsWith("#")) {
def pos = it.indexOf("=")
def key = it.substring(0, pos)
def value = it.substring(pos + 1)
if (System.getProperty(key) == null) {
System.setProperty("env.$key", value)
}
}
}
if (variant.name == "release") {
android.signingConfigs.release.storeFile file(System.getProperty("env.ANDROID_APP_SIGNING_STOREFILE"))
android.signingConfigs.release.keyAlias System.getProperty("env.ANDROID_APP_SIGNING_KEYALIAS")
android.signingConfigs.release.storePassword System.getProperty("env.ANDROID_APP_SIGNING_STOREPASSWORD")
android.signingConfigs.release.keyPassword System.getProperty("env.ANDROID_APP_SIGNING_KEYPASSWORD")
}
android.defaultConfig.buildConfigField "String", "ANDROID_APP_URL", "\"${System.getProperty("env.ANDROID_APP_URL")}\""
}
Kotlin:
Log.i(TAG, BuildConfig.ANDROID_APP_URL)
Пожалуйста, дайте мне знать, что вы думаете об этом, так как я не совсем уверен, как он работает, особенно для выбора хорошего файла для загрузки.