从Android Studio gradle build

时间:2015-05-08 15:41:22

标签: android shell android-studio environment-variables android-gradle

在我的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?

1 个答案:

答案 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