Android SDK位置与构建服务器的位置,如何设置?

F1s*_*her 1 sdk android build environment-variables gradle

我想为我的Android应用程序创建一个构建服务器。我正在与TeamCity合作。我的问题是:

  1. 作为PC(Windows)的构建服务器看不到Android SDK位置。
  2. 运行服务器的PC已正确设置了ANDROID_HOME。
  3. 我的应用程序使用Gradle构建系统。

我需要做的是在构建应用程序时使构建服务器使用环境位置(ANDROID_HOME)。我已经尝试了什么?

  • 我在Android项目中使用了local.properties。例如,我尝试通过各种方式将ANDROID_HOME参数设置为sdk.dir。

sdk.dir = ANDROID_HOME

结果-错误:

SDK目录“ E:\ TeamCity \ buildAgent \ work \ a6d423a9d6e29c40 \ ANDROID_HOME”不存在。

如您所见,服务器之前添加了一些奇怪的目录。$ ANDROID_HOME或%ANDROID_HOME%也是如此。

  • 当我手动设置路径并指向服务器上的SDK方向时:

sdk.dir = /程序文件(x86)/ android-studio / sdk

然后服务器构建项目,一切正常。ANDROID_HOME环境变量与此位置相同。

  • 我删除了local.properties,我得到了:

找不到SDK位置。在local.properties文件中使用sdk.dir或使用ANDROID_HOME环境变量来定义位置。

所以我的理解是:如果我的项目中没有local.properties,它将在ANDROID_HOME环境变量中查找SDK路径。就像我说的那样,在我的服务器上设置了环境变量,并且已经检查了很多次。没用 (我也在MAC X OS上尝试过,终端将ANDROID_HOME显示为/ Applications / Android Studio.app/sdk,但例如,仅当我在local.properties中对路径进行硬编码时,Android Studio才能构建项目。它不希望接受ANDROID_HOME变量。)


如何在local.properties中设置环境变量,这样我就不必对其进行硬编码来使其起作用?

F1s*_*her 5

感谢您的有趣链接。这是一个很棒的项目,但就我而言,这并没有给我真正需要的东西。我设法通过执行以下操作配置了TaxiCity项目:

  1. 每个工作人员在PC上都有自己的local.properties,不会通过提交推送到仓库。
  2. TeamCity通过回购构建项目,但是没有local.properties-因此,他将查找ANDROID_HOME或在找不到该对象时给出错误。
  3. 因为在作为服务器的PC上设置ANDROID_HOME环境变量无效,所以我找到了一种解决方法:在TeamCity服务器文件中设置ANDROID_HOME变量-buildAgent.properties
  4. TeamCity找不到local.properties(因为它不在存储库中),从位于buildAgent.properties文件中的ANDROID_HOME变量获取安装在服务器上的SDK位置