Intereting Posts

Правильный способ использования переменных среды системы в gradle с помощью Android Studio

Я использую Android Studio для создания моего проекта в системе Ubuntu 14.04.

Я написал следующее в моих файлах build.gradle, чтобы избежать hardcoding storeFile, storePassword, keyAlias ​​и keyPassword в моем git-репо:

signingConfigs { debug { storeFile file(System.getenv("KEYSTORE")) storePassword System.getenv("KEYSTORE_PASSWORD") keyAlias System.getenv("KEY_ALIAS") keyPassword System.getenv("KEY_PASSWORD") } 

Но ошибки синхронизации градации следующие: Error:(49, 0) Neither path nor baseDir may be null or empty string. path='null' basedir='./pathto/TMessagesProj' Error:(49, 0) Neither path nor baseDir may be null or empty string. path='null' basedir='./pathto/TMessagesProj'

Мой .bashrc содержит: source ~/.gradlerc и my ~ / .gradlerc содержит следующее:

 export KEYSTORE="/home/myname/keystore/mykey" export KEYSTORE_PASSWORD='mypass' export KEY_ALIAS='mykey' export KEY_PASSWORD='keypass' 

Я подтвердил, что эти переменные правильно импортированы оболочкой. Однако я не уверен, почему он не получен в среде сборки в Android Studio.

Каков правильный способ использования переменных окружения в градиенте?

Solutions Collecting From Web of "Правильный способ использования переменных среды системы в gradle с помощью Android Studio"

Мне также нравится иметь свою информацию о хранилище ключей для переменных окружения, а не иметь его внутри проекта. Ваш код кажется прекрасным, но у меня была такая же проблема с файловым путем. Я решил это, преобразовывая это значение в строку перед передачей его в file() :

 signingConfigs { debug { storeFile file(String.valueOf(System.getenv("KEYSTORE"))) storePassword System.getenv("KEYSTORE_PASSWORD") keyAlias System.getenv("KEY_ALIAS") keyPassword System.getenv("KEY_PASSWORD") } 

Надеюсь это поможет.

Создайте файл gradle.properties в исходной папке (вместе с build.gradle ), чтобы применить только к текущему проекту или в ~/.gradle/gradle.properties чтобы применить в общесистемном отношении содержимое:

 keystore=/home/myname/keystore/mykey keystore_password=mypass key_alias=mykey key_password=keypass - keystore=/home/myname/keystore/mykey keystore_password=mypass key_alias=mykey key_password=keypass 

Теперь обновите файл build.gradle с помощью:

 debug { storeFile file("${keystore}") storePassword "${keystore_password}" keyAlias "${key_alias}" keyPassword "${key_password}" } 

При желании вы можете передать параметры из командной строки с опцией -P . Например, ./gradlew assemble -Pkey_password=keypass .