我确实有一个多模块项目,在不同的根路径中有一个库项目。作为例证,你可以想象这样的事情:
/projects_home/projects/app_root
|--app/
| |--build.gradle
|--build.gradle
|--settings.gradle
/libraries_home/libraries
|--libA
|--build.gradle
在我的settings.gradle文件中,我可以使用projectDir属性设置库项目的绝对路径。这在控制台和Android Studio中都很好用。
但如果我尝试使用环境变量,它将停止在Android Studio中工作。上面示例的settings.gradle看起来像这样:
include ':app'
include ':libA'
project(':libA').projectDir = new File("$System.env.LIB_ROOT", '/libraries/libA')
如果我从控制台使用graddle Package 器构建,它仍然可以工作。但是AS停止工作,并出现以下错误消息:
Gradle 'app' project refresh failed:
Configuration with name 'default' not found.
如果我取消设置环境变量,控制台上的构建会失败,并显示相同的消息:
* What went wrong:
A problem occurred configuring project ':app'.
> Configuration with name 'default' not found.
因此,我猜想AS可能无法访问我的~/.bashrc设置的环境变量
你们中有人知道如何让AS意识到我的环境吗?
9条答案
按热度按时间zqry0prt1#
Android Studio会读取环境变量。您可以通过从这些env.变量被指定,而不是从X窗口 Jmeter 板。
你没有这些变量的原因是你使用的X-window环境没有读取包含这些变量的
$HOME/.bashrc
。这是有意义的,因为bashrc
是用于Bash而不是X。假设您使用的是GNOME或Unity,要启动Android Studio并指定这些环境变量,只需修改Android Studio的
.desktop
文件(例如:~/.local/share/applications/android-studio.desktop
):找到这行:
将其更改为:
注意事项:
此修改只是将
env LIB_ROOT=/libraries_home
前置到原始命令。您必须将username
替换为您自己的用户名。更新
如果您有任何问题,请留言,而不是直接编辑答案。
sq1bmfud2#
在Mac上,Android Studio显然不会读取Gradle中使用的环境变量。我相信这就是这里答案混乱的原因-也许在Windows上是这样。
为了让Android Studio读取环境变量,我从命令行运行应用程序:
这里的其他答案提供了使用环境变量以外的解决方案。就我的情况而言,我使用的库不是我写的,需要使用环境变量,我宁愿不编辑它们的代码,这样以后更新更容易。
编辑:而且,我有一个码头图标,以这种方式启动Android Studio:
vxqlmq5t3#
Android Studio不读取环境变量,因此这种方法不起作用。此外,在settings.gradle中使用
projectDir
方案可能会导致问题。Android Studio有一个限制,即其所有模块都需要位于项目根目录下。如果您有在多个项目中使用的库,并且它们不能放置在单个项目根目录下,最好的建议是让它们将JAR或阿尔斯发布到单个项目可以获取的本地Maven存储库。k4emjkb14#
尽管斯科特·巴塔的回答是正确的,但我意识到有一种方法可以解决我的问题,如果其他人有同样的要求,我就不想分享了。
我现在使用gradle.properties文件定义和使用gradle属性,而不是系统属性。此功能的文档可以在用户指南中找到
我最初问题的解决方案现在看起来像这样:
必须修改settings.gradle文件以使用gradle属性而不是system属性:
这对我来说很好,无头以及与AS。
关于我正在使用的模块没有放在一个项目根下的事实,还有一些话。到目前为止,AS似乎并没有抱怨这一点。但我刚开始使用这个结构,可能以后会遇到问题。我喜欢的是AS中更扁平的表示,这更像是我习惯于在Eclipse中使用它。
用户指南中也描述了使用gradle.properties文件设置系统属性。我也尝试过这个方法,但我确实遇到了AS使用环境变量的相同问题。
up9lanfz5#
它适用于我与以下步骤:
1.在Windows中设置变量
1.重新启动
1.在Gradle Build中实现它:
System.env.MYVARIABLE
2jcobegt6#
您可以通过追加以下内容来设置环境变量:
到
~/Library/Preferences/AndroidStudioX.X/studio.vmoptions
,您可以通过从Android Studio菜单中选择 * 帮助->编辑自定义VM选项. * 打开。然后你可以像这样使用它:
在 build.gradle 或 settings.gradle 中。
syqv5f0l7#
在Android Studio Bumblebee更新后,我在苹果笔记本电脑中遇到了同样的问题。这似乎是由于Android Studio的一些权限问题而发生的。
解决方法是添加缺失标志:
您可以查看this问题跟踪器了解更多详细信息。
wmvff8tz8#
在Mac OS上,Android Studio实际上在一段时间前开始读取env vars。在它没有之前。但是在导入这些变量的过程中可能会发生错误。您可以在intellij官方支持页面https://youtrack.jetbrains.com/articles/IDEA-A-19/Shell-Environment-Loading上阅读更多信息
lx0bsm1f9#
MAC OS更新
我确认我有环境变量在Mac OS Catalina 上工作
你只需要在你使用的shell中设置它。我正在使用zsh,并试图设置~/.bash_profile,所以它不工作。
范例:
公司简介