Android Studio не учитывает переменные среды

1

Я пытаюсь передать специфические для среды значения для Android studio v 2.2.2 (например, URL-адрес сервера, расположение хранилища ключей и пароль), установив аргументы java vm. Пока я пробовал следующие параметры, но ничего не сработало.

1. Установка аргументов java-vm из studio.vmoptions(как описано здесь)

Я нажал Help -> Edit Custom VM Options..., чтобы создать новый файл vmoptions, который создается в ~/.AndroidStudio2.2/studio64.vmoptions. Я отредактировал файл, чтобы добавить следующую строку.

-DRELEASE_KEY_STORE_PATH=/home/ubuntu/ks/myapp/app-release.keystore

2. С gradle.properties файлом

Я создал файл gradle.properties в том же каталоге, где существует файл root build.gradle. Файл имеет следующее содержимое.

RELEASE_KEY_STORE_PATH=/home/ubuntu/ks/myapp/app-release.keystore

3. Отредактировано файл studio.sh

Я также попытался отредактировать файл studio.sh, добавив следующую строку в надежде, что эти свойства будут доступны для Android Studio.

export RELEASE_KEY_STORE_PATH=/home/ubuntu/ks/myapp/app-release.keystore

У моего файла build.gradle есть секция signConfig, в которой используется это значение.

signingConfigs {
        release {
            storeFile file(System.env.RELEASE_KEY_STORE_PATH)
            storePassword System.env.RELEASE_KEYS_STORE_PASSWORD
            keyAlias System.env.RELEASE_KEY_ALIAS
            keyPassword System.env.RELEASE_KEY_PASSWORD
        }
    }

Сбой сборки при выполнении gradle проекта sync/build выполняется из Android Studio.

Появится сообщение об ошибке: Neither path nor baseDir may be null or empty string. path='null' basedir='/home/ubuntu/path-to-project'. Это означает, что script не может разрешить путь к файлу по мере поступления null.

UPDATE Если я запустил конструкцию gradle из командной строки, она отлично работает, сборка завершается успешно, все, что мне нужно сделать, это просто запустить некоторые команды экспорта для желаемых свойств, которые я хочу наследовать в сборке.

Ниже приведена моя среда dev:

  • Gradle версия, используемая Android Studio: 2.14.1
  • Gradle версия плагина: 2.3.1
  • Версия Android Studio: 2.2.2
  • Версия Java: oracle jdk 1.8.0_111
  • ОС: Ubuntu 16.04 amd64
  • 1
    Когда вы попробовали вариант Gradle, вы делали System.env.RELEASE_KEY_STORE_PATH или просто RELEASE_KEY_STORE_PATH ? Это должен быть второй, поскольку это не переменная окружения.
  • 0
    Что вы подразумеваете под опцией maven? установить реквизиты в файле gradle.properties?
Показать ещё 7 комментариев
Теги:
android-studio
gradle
android-gradle

1 ответ

0

Я провел расследование, основанное на комментариях @DeeV и @CommonsWare, и сделал некоторые изменения для успешного запуска сборки в Android Studio, а также в командной строке.

  • Я разместил файл gradle.properties в домашнем каталоге Gradle. В моей среде (ubuntu) домашний каталог Gradle находится в ~/.gradle.

  • Мне нужно удалить System.env. из использования переменных, поэтому он использует свойства, объявленные в файле gradle.properties.

С этими двумя изменениями я заметил, что проблема с Android Studio решена. Однако это вызвало еще одну проблему: сборка CL сбоя с ошибкой:   Failed to read key relase_key from store "/home/ubuntu/ks/myapp/app-release.keystore": Keystore was tampered with, or password was incorrect. Это означает, что Gradle при запуске из CL может разрешить путь, но не может прочитать ключ из KS.

Мне нужно сделать следующий шаг, чтобы избавиться от этой ошибки:

  1. В gradle.properties я поместил значения для RELEASE_KEY_PASSWORD и RELEASE_KEY_STORE_PASSWORD в двойные кавычки, я удалил кавычки, а затем сборка была успешно завершена из командной строки.

Надеюсь, это поможет любому, кто сталкивается с подобной ситуацией.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню