从 Android Studio gradle build 访问环境变量 [英] Access to environment variables from Android Studio gradle build

查看:43
本文介绍了从 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆