OSX Android Studio 的 gradle 无法读取 .bash_profile 环境变量 [重复]
Posted
技术标签:
【中文标题】OSX Android Studio 的 gradle 无法读取 .bash_profile 环境变量 [重复]【英文标题】:OSX Android studio's gradle cannot read .bash_profile environment variable [duplicate] 【发布时间】:2015-11-29 08:25:01 【问题描述】:我在 mac OSX 和 Windows 中有一个 KEY_STRING 作为系统变量。其中有我的密钥库的绝对路径。
~/.bash_profile 条目将是
export KEY_STRING =~/config/release-signing.keystore
在我的每台队友机器[Windows/OSX/Linux] 中设置相同的路径。
我访问这个变量的 Gradle 脚本是
def keystorePath = System.getenv("KEY_STRING");
println keystorePath;
此脚本在 Windows 的控制台和 android studio 中都能正常运行。
mac android studio 特有的我的问题。
如果我在终端运行构建,它工作正常并读取 env 变量。
但是当我进行 gradle sync 或设置运行配置 [Gradle task] 时,它无法解析变量。
我也已将此issue 报告给 Google。
这里是快速总结:
在 ~/.bash_profile 中设置环境变量在 build.gradle 的任何地方读取它
def keystorePath = System.getenv("KEY_STRING"); println keystorePath;
在配置中添加 gradle 任务。
它没有读取环境变量。【问题讨论】:
根本没有。它是特定于android studio的gradle的。它无法读取变量。 ... 因为 OSX 应用程序无权访问在.bash_profile
中设置的环境变量。
是否有任何解决方法来放置这些环境变量?我不想弄乱我的 build.gradle
你看过我链接的答案了吗?
是的.. 我读到它不再在 Yosmite 中工作,评论中有 30 个赞。
【参考方案1】:
没有一个 OSX 应用可以读取环境变量。
根据这个答案 https://***.com/a/14285335/981555
我的问题的解决方案是
launchctl setenv KEY_STRING ~/config/release-signing.keystore
这应该在启动 Android Studio 之前设置。
【讨论】:
要添加到这个答案,我实际上能够通过使用保存为应用程序的 AppleScript 组合在 OSX 登录上自动设置环境变量,在用户和组中的登录项上启动,并使用这个语法:do shell script "launchctl setenv ANDROID_HOME /users/$(whoami)/Library/Android/sdk"
。这会在用户登录时运行launchctl setenv,然后应用程序和终端可以看到环境变量以上是关于OSX Android Studio 的 gradle 无法读取 .bash_profile 环境变量 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
获取 libGDX Android 游戏的目录文件和 ClassLoader
Android Studio:使用 Mac (OSX) 和 Windows 的同一项目的 SDK 位置更改
Android Studio 无法在 Mac OSX (Mavericks) 上加载 JVM