【问题标题】:Using environment variables for Gradle builds in Android Studio在 Android Studio 中为 Gradle 构建使用环境变量
【发布时间】:2016-04-05 19:54:47
【问题描述】:

我们决定使用 GitHub 作为我们的版本控制。我知道Gradle 构建脚本使用某些路径,例如local.properties 文件中的Android SDK 路径。

由于我们五个人的路径不同,我认为当我的队友从 GitHub 拉取更改时,项目将无法在我的队友的机器上构建。这是正确的吗?

如果是这样,我们是否都可以创建一个名为ANDROID_SDK 的环境变量并将其用于local.properties 中的sdk.dir?如果我们使用环境变量,项目会在我们所有的机器上正确构建吗?是否还有其他我们可能需要设置的地方 类似的环境变量?这行得通吗?如果是这样,我们该怎么做?

我不确定这是否是为 Android 设置团队项目的最佳方式。我正在寻找有关此最佳实践的建议。

【问题讨论】:

  • 无论 SDK 安装在开发者机器上的什么位置,项目都应该可以正常构建。 local.properties 是一个生成的文件,不应将其签入源代码管理(如该文件中的 cmets 所示)。也许您可以具体说明您遇到的问题?
  • 谢谢@DougStevenson。我认为我的一位队友可能存在一些用户错误,因为他说 Android Studio 找不到他的 SDK 路径。对我来说一切都很好,我只是想知道我是否需要做一些特别的事情来确保当其他人把它拉下来时构建也能正常工作。
  • 对我来说,它已提交到我的存储库中。我看到了我所有的回购,他们都有local.properties,而在.gitignore他们都有这一行:/local.properties

标签: android android-studio github environment-variables


【解决方案1】:

这对吗?

不,因为恕我直言 local.properties 不应该在您的 Git 存储库中。标准的 Android Studio .gitignore 文件(在您创建项目时创建)具有 local.properties,这意味着 local.properties 不会提交到您的存储库。

正如 Doug Stevenson 在评论中指出的那样,local.properties 是在您导入项目时生成的。它将由 Android Studio 设置驱动。

我们是否都可以创建一个名为 ANDROID_SDK 之类的环境变量并将其用于 local.properties 中的 sdk.dir?

不适用于 Android Studio,至少我最后一次尝试过。对于命令行 Gradle 构建,这可以正常工作,但 Android Studio 不会将环境传递给其分叉的 Gradle 进程。

【讨论】:

  • 感谢您的信息,如果这是一个愚蠢的问题,对不起。我问这个的原因是因为不久前我们建立了一个测试应用程序,我把它推到了 GitHub 上,很少有学生遇到问题。有人说 Android Studio 找不到他的 SDK 目录,但也许他有与我的测试应用程序无关的更大问题。那时我们才刚开始学习这门课程,所以可能存在一些用户错误:) 听起来每个人都应该能够构建和编辑项目应用程序,而无需我在提交后做任何特别的事情。再次感谢!
  • @crmackey:“对不起,如果这是一个愚蠢的问题”——不,因为 Android 项目没有最好的系统来识别什么是什么,什么不是应该检查的东西。它比以前好多了,但你仍然有诸如local.properties 之类的挥之不去的东西。环境变量位只是 Google 的一个错误决定。
猜你喜欢
  • 1970-01-01
  • 2015-07-19
  • 1970-01-01
  • 2016-04-28
  • 2014-10-24
  • 2016-07-19
  • 1970-01-01
  • 1970-01-01
  • 2015-11-27
相关资源
最近更新 更多