Android SDK location vs Build Server,如何设置? [英] Android SDK location vs Build Server, how to set it?
问题描述
我想为我的 Android 应用程序创建一个构建服务器.我正在与 TeamCity 合作.我的问题是:
I want to create a build server for my Android Application. I am working with TeamCity. My problem is:
- 作为 PC (Windows) 的构建服务器看不到 Android SDK 位置.
- 运行服务器的 PC 以正确的方式设置了 ANDROID_HOME.
- 我的应用程序使用 Gradle 构建系统.
我需要做的是让我的构建服务器在构建我的应用程序期间使用环境位置 (ANDROID_HOME).我已经尝试了什么?
What I need to do is to make my build server use environment location (ANDROID_HOME) during build of my app. What have I already tried?
- 我在我的 Android 项目中使用了 local.properties.例如,我尝试通过各种方式将 ANDROID_HOME 参数设置为 sdk.dir.
sdk.dir = ANDROID_HOME
sdk.dir = ANDROID_HOME
结果 - 错误:
SDK 目录E:TeamCityuildAgentworka6d423a9d6e29c40ANDROID_HOME"不存在.
The SDK directory 'E:TeamCityuildAgentworka6d423a9d6e29c40ANDROID_HOME' does not exist.
如您所见,服务器之前添加了一些奇怪的目录.同样适用于:$ANDROID_HOME 或 %ANDROID_HOME%.
So as you can see, server adds some strange directory before. Same goes for: $ANDROID_HOME or %ANDROID_HOME%.
- 当我手动设置路径并指向服务器上的 SDK 方向时:
sdk.dir =/Program Files (x86)/android-studio/sdk
sdk.dir = /Program Files (x86)/android-studio/sdk
然后服务器构建项目,一切正常.ANDROID_HOME 环境变量设置为与此相同的位置.
Then server builds the project and everything is right. ANDROID_HOME environment variable is set to same location as this.
- 我删除了 local.properties,我得到了这个:
未找到 SDK 位置.使用 local.properties 文件中的 sdk.dir 或使用 ANDROID_HOME 环境变量定义位置.
SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable.
所以我的理解是:如果我的项目中没有 local.properties,它将在 ANDROID_HOME 环境变量中查找 SDK 路径.就像我说的,在我的服务器上设置了环境变量,我已经检查了很多次.它不起作用.(我也在 MAC X OS 上尝试过,终端将 ANDROID_HOME 显示为/Applications/Android Studio.app/sdk 但例如,只有当我在 local.properties 中硬编码路径时,Android Studio 才能构建项目.它不想接受ANDROID_HOME 变量.)
So how I understand this is: if I won't have local.properties in my project it will look for SDK path in ANDROID_HOME environment variable. Like I said, on my server environment variable is set and I've checked it many times. It doesn't work. (I tried it also on MAC X OS, terminal displays ANDROID_HOME as /Applications/Android Studio.app/sdk but for example Android Studio is able to build project only if I hardcode path in local.properties. It doesn't want to accept ANDROID_HOME variable in any way.)
如何在 local.properties 中设置环境变量,这样我就不必对其进行硬编码以使其工作?
How can I set environment variable in local.properties so I don't have to hardcode it to make it work?
推荐答案
感谢您提供有趣的链接.这是一个很棒的项目,但在我的情况下,它并没有给我真正需要的东西.我设法通过以下方式配置了我的 TaxiCity 项目:
Thanks for interesting link. It is a great project but in my situation it doesn't give me what I really need. I managed to configure my TaxiCity project by doing:
- 每个工作人员在 PC 上都有自己的 local.properties,不会通过提交推送到 repo.
- TeamCity 从 repo 构建项目,但没有 local.properties - 因此他会寻找 ANDROID_HOME 或如果找不到它会给出错误.
- 由于在作为服务器的 PC 上设置 ANDROID_HOME 环境变量不起作用,我找到了一种解决方法:在 TeamCity 服务器文件 - buildAgent.properties 中设置 ANDROID_HOME 变量
- TeamCity 找不到 local.properties(因为它不在 repo 上),从 buildAgent.properties 文件中的 ANDROID_HOME 变量获取安装在服务器上的 SDK 位置
这篇关于Android SDK location vs Build Server,如何设置?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!