我想爲我的Android應用程序創建一個構建服務器。我正在與TeamCity合作。我的問題是:Android SDK位置vs Build Server,如何設置?
- 構建服務器是PC(Windows)沒有看到Android SDK的位置。
- 運行服務器的PC機以正確的方式設置了ANDROID_HOME。
- 我的應用程序使用Gradle構建系統。
我需要做的是讓我的構建服務器在構建我的應用程序時使用環境位置(ANDROID_HOME)。我已經嘗試過了什麼?
- 我在我的Android項目中使用了local.properties。我嘗試以各種方式將ANDROID_HOME參數設置爲sdk.dir,例如。
sdk.dir = ANDROID_HOME
結果 - 錯誤:
The SDK directory 'E:\TeamCity\buildAgent\work\a6d423a9d6e29c40\ANDROID_HOME' does not exist.
因此,大家可以看到,服務器之前增加了一些奇怪的目錄。同樣適用於:$ ANDROID_HOME或%ANDROID_HOME%。
- 當我在服務器上手動和點設置路徑SDK方向這樣:
sdk.dir = /Program Files (x86)/android-studio/sdk
然後服務器生成項目,一切是正確的。 ANDROID_HOME環境變量被設置爲與此相同的位置。
- 我刪除local.properties,我得到這個:
SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable.
那麼,如何理解是這樣的:如果我不會在我的項目local.properties它會尋找SDK路徑在ANDROID_HOME環境變量中。就像我說的,在我的服務器環境變量已設置,我已經檢查了很多次。它不起作用。 (我在MAC X OS上也試過,終端顯示ANDROID_HOME爲/ Applications/Android Studio.app/sdk,但例如Android Studio只能在local.properties中硬編碼路徑的情況下才能構建項目,它不想接受以任何方式ANDROID_HOME變量)。
我如何可以設置local.properties環境變量,這樣我就不必硬編碼,使其工作?
'ANDROID_HOME'不應該是'sdk.dir'屬性的值。這是您需要使用SDK的路徑值創建的環境變量的名稱。對於'sdk.dir',你應該可以使用'sdk.dir = c:\ Program Files文件(x86)\ android-studio \ sdk' –
我知道這可以工作,但它不會在其他PC上工作。我的意思是,當我在我的MAC上工作,我的SDK目錄是/ Applications/Android Studio.app/sdk,然後我將它推送到GIT倉庫,那麼其他想要抽取它的人也會將我的local.properties編譯。此外,如果我在build服務器運行時出錯,因爲它不會在PC/Windows上找到SDK(因爲PC上的SDK目錄是/ Program Files(x86)/ android-studio/sdk和我用/ Applications/Android Studio.app/sdk推送了我的local.properties文件。這就是爲什麼每臺PC使用ANDROID_HOME都是最佳的原因 – F1sher