Reputation: 20934
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.
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) Set custom environment variable via ~/.bash.profile
:
export MY_CUSTOM_VAR='Hello World'
2) In build.gradle
create task which prints this environment variable:
task printVar << {
println System.getenv("MY_CUSTOM_VAR")
}
3) execute printVar
from command line. Output is correct - env variable is set:
output: Hello World
4) execute printVar
from Android Studio. Environment variable is not set. Output is empty
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
.
Is there any way I can populate custom environment variables to Android Studio?
Upvotes: 20
Views: 11985
Reputation: 51
You can set the environment used by launchd (and, by extension, anything started from Spotlight) with launchctl setenv. For example to set the path:
launchctl setenv MY_CUSTOM_VAR /***/***/***
To keep changes after a reboot you can set the environment variables from /etc/launchd.conf, like so:
setenv MY_CUSTOM_VAR /***/***/***
you can see Setting environment variables in OS X?
Upvotes: 1
Reputation: 20934
Found an answer here: Environment variables in Mac OS X
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
So I modified my ~/.bash_profile
as follows:
export MY_CUSTOM_VAR='Hello World'
launchctl setenv MY_CUSTOM_VAR $MY_CUSTOM_VAR
Upvotes: 37