我想为我的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环境变量,这样我就不必硬编码,使其工作?
2014-03-31
F1sher
+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都是最佳的原因 –