2014-03-31 53 views
1

我想爲我的Android應用程序創建一個構建服務器。我正在與TeamCity合作。我的問題是:Android SDK位置vs Build Server,如何設置?

  1. 構建服務器是PC(Windows)沒有看到Android SDK的位置。
  2. 運行服務器的PC機以正確的方式設置了ANDROID_HOME。
  3. 我的應用程序使用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環境變量,這樣我就不必硬編碼,使其工作?

+1

'ANDROID_HOME'不應該是'sdk.dir'屬性的值。這是您需要使用SDK的路徑值創建的環境變量的名稱。對於'sdk.dir',你應該可以使用'sdk.dir = c:\ Program Files文件(x86)\ android-studio \ sdk' –

+0

我知道這可以工作,但它不會在其他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

回答

3

感謝有趣的聯繫。這是一個很棒的項目,但在我的情況下,它並不能給我真正需要的東西。我設法通過這樣做來配置我的TaxiCity項目:

  1. 每個工作人員都有自己的local.properties在PC上不推送回提交與提交。
  2. TeamCity從repo構建項目,但沒有local.properties - 因爲他會查找ANDROID_HOME或者如果找不到它,就會報錯。
  3. 由於設置在PC上這是一個服務器不工作ANDROID_HOME環境變量中,我發現了一個解決方法是:在設置裏面的TeamCity服務器文件ANDROID_HOME變量 - buildAgent.properties
  4. 的TeamCity找不到local.properties(因爲它不是回購),從位於buildAgent.properties文件中的ANDROID_HOME變量獲取SDK位置安裝在服務器上
+0

設置ANDROID_HOME爲我工作 - 我必須先安裝Android Studio並在構建服務器上下載android SDK。 –

4

我希望這將有助於解決這個問題: https://github.com/JakeWharton/sdk-manager-plugin

+0

有趣的是,我現在正在測試它。 – F1sher

+0

這工作幾乎完美。但專用於Linux/MAC。構建服務器上的構建任務創建local.properties與正確的路徑sdk.dir但斜槓是錯誤的方向。 (「\」而不是「/」)我必須手動更改它,然後從現在開始工作。 – F1sher