首页 文章

Android SDK位置与Build Server,如何设置?

提问于
浏览
1

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

  • 构建服务器即PC(Windows)无法看到Android SDK位置 .
    运行服务器的

  • PC正确设置了ANDROID_HOME .

  • 我的应用程序使用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 = / Program Files(x86)/ android-studio / sdk

然后服务器构建项目,一切都是正确的 . ANDROID_HOME环境变量设置为与此相同的位置 .

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

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

所以我理解这一点是:如果我的项目中没有local.properties,它将在ANDROID_HOME环境变量中查找SDK路径 . 就像我说的,在我的服务器环境变量设置,我已经多次检查 . 它不起作用 . (我也在MAC X OS上尝试过,终端显示ANDROID_HOME为/ Applications / Android Studio.app/sdk,但是例如Android Studio只有在我对local.properties中的路径进行硬编码时才能构建项目 . 它不想接受ANDROID_HOME变量以任何方式 . )


如何在local.properties中设置环境变量,以便我不必对其进行硬编码以使其工作?

2 回答

  • 4

    我希望这有助于解决问题:https://github.com/JakeWharton/sdk-manager-plugin

  • 4

    感谢有趣的链接 . 这是一个伟大的项目,但在我的情况下,它并没有给我我真正需要的东西 . 我设法通过以下方式配置我的TaxiCity项目:

    • 每个工作人员都拥有自己的PC上的local.properties,这些属性并未通过提交进行回购 .

    • TeamCity从repo构建项目但是没有local.properties - 因为他会找到ANDROID_HOME或者如果找不到则给出错误 .

    • 因为在作为服务器的PC上设置ANDROID_HOME环境变量不起作用,我找到了一种解决方法:在TeamCity服务器文件中设置ANDROID_HOME变量 - buildAgent.properties

    • TeamCity可以't find local.properties (because it'不在repo上),从位于buildAgent.properties文件中的ANDROID_HOME变量获取服务器上的SDK位置

相关问题