【问题标题】:Access to environment variables from Android Studio gradle build从 Android Studio gradle build 访问环境变量
【发布时间】:2015-07-19 14:26:39
【问题描述】:

在我的 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。输出正确 - 设置了环境变量:

输出:Hello World

4) 从 Android Studio 执行 printVar。环境变量未设置。输出为空

常识告诉我,通过 export MY_CUSTOM_VAR='Hello World' 我只是让这个变量可用于 shell 进程(及其子进程)。如果我从命令行启动我的 Android Studio,它可能会起作用(所以它会继承我的环境)。但是由于我从 Dock 启动 Android Studio(顺便说一下,我在 Mac 上) - 它有自己的环境,对我的 ~/.bash.profile 没有任何想法。

有什么方法可以将自定义环境变量填充到 Android Studio 中?

【问题讨论】:

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


【解决方案1】:

您可以使用 launchctl setenv 设置 launchd 使用的环境(以及从 Spotlight 开始的任何内容)。例如设置路径:

launchctl setenv MY_CUSTOM_VAR /***/***/***

要在重启后保留更改,您可以从 /etc/launchd.conf 设置环境变量,如下所示:

setenv MY_CUSTOM_VAR /***/***/***

你可以看到Setting environment variables in OS X?

【讨论】:

    【解决方案2】:

    在这里找到答案: Environment variables in Mac OS X

    基本上,您还需要通过launchctl 设置launchd 使用的环境变量 - 这样环境变量将可用于从 MacOS UI 启动的任何内容

    所以我修改了我的~/.bash_profile如下:

    export MY_CUSTOM_VAR='Hello World'
    launchctl setenv MY_CUSTOM_VAR $MY_CUSTOM_VAR
    

    【讨论】:

    • 别忘了运行 "$ source .bash_profile" 并重启 Android Studio! ;)
    猜你喜欢
    • 1970-01-01
    • 2015-03-11
    • 2014-06-11
    • 2022-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-25
    • 1970-01-01
    相关资源
    最近更新 更多