2015-10-19 150 views
12

在android studio中是否有這樣的功能? 基本上我的gradle腳本讀取的參數名稱是基於它設置某個庫的依賴版本的版本。 所以當我做gradlew -Pversion ='1.2.3'我得到這個字符串裏面的gradle。但是這隻有在我從控制檯調用gradle時纔有效。從android studio傳遞-P參數到gradle

當開始使用Android Studio中的項目配置(按下小玩三角形)時,是否有一種方法可以將參數傳遞給gradle?

注:我沒有在默認配置下找到Gradle VM選項和腳本參數,但添加-Pversion ='1.2.3'似乎沒有效果。

回答

7

運行>編輯配置..

enter image description here

你PARAMS替換 「ABCDEF」 的腳本參數。

+3

不幸的是,這不適用於我的情況。我想在使用Android應用程序配置時將參數傳遞給gradle(屏幕截圖左側的第一個選項),我不想直接運行Gradle任務。 – PSIXO

4

例如,讓我們嘗試在構建項目時傳遞服務器基本端點。首先,我們需要定義它獲取URL,並將其設置

def serverUrl = "https://mydefaulturl.com" 
task(runProgram){ 
    if(project.hasProperty("url")){ 
     serverUrl = url; 
    } 
} 

在你buildTypes創建自己的基本網址與該值的方法:

debug{ 
    buildConfigFiled("java.lang.String","BASE_URL","$serverUrl") 
} 

現在我們可以通過調試建立一個網址,並使用它。

您可以從終端用下面的命令來構建你的項目:

./gradlew installDebug task runProgram '-Purl="https://yournewurl.com"' 
+0

在這裏添加一個字段來建立配置有什麼用處? – PSIXO

+0

如果您使用兩個或更多不同的網址進行測試和製作,您可以使用構建變體或構建類型生成基礎網址。在生產之前,並不是很好的情況下評論或註釋掉一些關鍵變量,如基礎url。 – savepopulation

+5

問題在於詢問是否有方法從android studio中執行此操作。答案沒有幫助。 – KMP

5

爲了下AndroidStudios編譯首

AndroidStudio>首選項提供參數到Android工作室run選項,您應該設置它們。 ..

在編譯器:ComandLineOptions enter image description here

+0

在AS 3.0.1上,這爲我工作,並允許即時運行功能,同時傳遞gradle屬性。不幸的是,這必須在全局設置,並且不能在每次運行配置中設置。另外,正如@KMP回答的那樣,直接使用Gradle任務來處理一個屬性,但它會爲我打破Instant Run。 –