从 Android Studio gradle build 访问环境变量 [英] Access to environment variables from Android Studio gradle build
问题描述
在我的 Android Gradle 构建中,我需要访问我从 .bash.profile
设置的环境变量.当我从命令行构建时它工作正常 - Gradle 脚本可以看到所有变量.
In my Android Gradle build I need to get access to environment variables I set from .bash.profile
. It works fine when I build from command line - Gradle script can see all the variables.
但是,当我尝试从 Android Studio 运行我的构建时 - 我不再拥有环境变量.
However, when I try to run my build from Android Studio - I don't have my environment variables anymore.
这是我面临的情况的粗略描述:
Here is a rough picture of what I'm facing:
1) 通过~/.bash.profile
设置自定义环境变量:
1) Set custom environment variable via ~/.bash.profile
:
export MY_CUSTOM_VAR='Hello World'
2) 在 build.gradle
中创建打印此环境变量的任务:
2) In build.gradle
create task which prints this environment variable:
task printVar << {
println System.getenv("MY_CUSTOM_VAR")
}
3) 从命令行执行 printVar
.输出正确 - 设置了环境变量:
3) execute printVar
from command line. Output is correct - env variable is set:
输出:Hello World
4) 从 Android Studio 执行 printVar
.环境变量未设置.输出为空
4) execute printVar
from Android Studio. Environment variable is not set. Output is empty
常识告诉我,通过执行 export MY_CUSTOM_VAR='Hello World'
我只是让这个变量可用于 shell 进程(及其子进程).如果我从命令行启动我的 Android Studio,它可能会工作(因此它会继承我的环境).但是自从我从 Dock 启动 Android Studio(顺便说一下,我在 Mac 上)-它有自己的环境,对我的 ~/.bash.profile
一无所知.
Common sense tells me that by doing export MY_CUSTOM_VAR='Hello World'
I just make this variable available to shell process (and its subprocesses). And it would probable work if I launch my Android Studio from command line (so it would inherit my environment). But since I launch Android Studio from dock (i'm on Mac by the way) - it has its own environment which doesn't have any idea about my ~/.bash.profile
.
有什么方法可以将自定义环境变量填充到 Android Studio 中?
Is there any way I can populate custom environment variables to Android Studio?
推荐答案
在这里找到答案:Mac OS X 中的环境变量
本质上,您还需要通过 launchctl
设置 launchd
使用的环境变量 - 这样环境变量将可用于从 MacOS UI 启动的任何内容
Essentially, you need to also set environment variables used by launchd
via launchctl
- this way environment variable will be available for anything launched from MacOS UI
所以我修改了我的~/.bash_profile
如下:
So I modified my ~/.bash_profile
as follows:
export MY_CUSTOM_VAR='Hello World'
launchctl setenv MY_CUSTOM_VAR $MY_CUSTOM_VAR
这篇关于从 Android Studio gradle build 访问环境变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!