在我的Android Gradle构建中,我需要访问我从.bash.profile
设置的环境变量。当我从命令行构建时,它工作正常 - Gradle脚本可以看到所有变量。
但是,当我尝试从Android Studio运行构建时 - 我不再拥有环境变量了。
以下是我所面对的大致情况:
1)通过~/.bash.profile
设置自定义环境变量:
export MY_CUSTOM_VAR='Hello World'
2)在build.gradle
创建任务中打印此环境变量:
task printVar << {
println System.getenv("MY_CUSTOM_VAR")
}
3)从命令行执行printVar
。输出正确 - 设置了env变量:
输出:Hello World
4)从Android Studio执行printVar
。环境变量未设置。输出为空
常识告诉我,通过执行export MY_CUSTOM_VAR='Hello World'
,我只需将此变量用于shell进程(及其子进程)。如果我从命令行启动我的Android Studio(这将继承我的环境),这可能会有效。但是,自从我从Dock启动Android Studio(顺便说一下,我在Mac上) - 它有自己的环境,对我的~/.bash.profile
一无所知。
我有没有办法将自定义环境变量填充到Android Studio?
答案 0 :(得分:23)
在这里找到答案: Environment variables in Mac OS X
基本上,您还需要通过launchd
设置launchctl
使用的环境变量 - 这样环境变量将可用于从MacOS UI启动的任何内容
所以我修改了~/.bash_profile
,如下所示:
export MY_CUSTOM_VAR='Hello World'
launchctl setenv MY_CUSTOM_VAR $MY_CUSTOM_VAR