2016-12-02 73 views
1

我想通過設置Java虛擬機參數將環境特定值傳遞給Android Studio v 2.2.2(例如服務器URL,密鑰存儲位置和密碼)。到目前爲止,我嘗試了以下選項,但沒有任何工作。Android Studio不尊重環境變量

1.從studio.vmoptions設置Java-VM參數(如記錄here

我點擊Help -> Edit Custom VM Options...創建其在〜/ .AndroidStudio2.2/studio64.vmoptions創建新文件vmoptions 。我編輯了文件以添加以下行。

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

2.用gradle.properties文件

我已創建在所述根的build.gradle文件存在相同的目錄中的文件gradle.properties。該文件具有以下內容。

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

3.編輯studio.sh文件

我也曾嘗試編輯studio.sh文件,添加以下行希望這些屬性將提供給Android的工作室。

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

我的build.gradle文件有signingConfig部分在使用這個值。

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時同步工程/建造從Android Studio中運行失敗。

顯示錯誤:Neither path nor baseDir may be null or empty string. path='null' basedir='/home/ubuntu/path-to-project'.這意味着腳本無法解析文件路徑,因爲它將變爲空。

UPDATE 如果我命令列運行它完美的作品的gradle構建,構建成功,我所要做的僅僅是火所需的性能我想在構建繼承一些導出命令。

以下是我的開發環境:

    由Android工作室使用
  • 搖籃版本:2.14.1
  • 搖籃插件版本: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'?它應該是第二個,因爲它不是一個環境變量。 – DeeV

+0

maven選項是什麼意思?在gradle.properties文件中設置道具? – Pawan

+0

對不起。我的意思是Gradle選項(#2)。 – DeeV

回答

0

我已經完成了基於@DeeV和@CommonsWare的評論的調查,並且已經做了一些更改以在Android Studio以及命令行上成功運行構建。

  1. 我已經將gradle.properties文件放在Gradle的主目錄中。在我的環境(ubuntu)中,gradle主目錄位於~/.gradle

  2. 我不得不從變量的使用去除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.這意味着從CL運行時,gradle可以解析路徑,但無法從KS讀取密鑰。

我必須做以下步驟擺脫這種錯誤的:

  • 在gradle.properties,我已經把值RELEASE_KEY_PASSWORDRELEASE_KEY_STORE_PASSWORD在雙引號,我刪除了引號,然後從命令行成功完成了構建。
  • 我希望這會幫助任何面臨類似情況的人。