设置GOOGLE_APPLICATION_CREDENTIALS后System.getenv返回null求助
解决Windows下Android Studio无法读取GOOGLE_APPLICATION_CREDENTIALS环境变量的问题
我之前在对接Google Cloud服务时也碰到过一模一样的坑,给你几个实用的排查和解决思路:
检查环境变量的作用范围
Windows的环境变量分「用户变量」和「系统变量」两种,如果你只在用户变量里设置了GOOGLE_APPLICATION_CREDENTIALS,而Android Studio是用管理员身份启动的,大概率读不到这个变量。建议把它移到系统变量中,然后右键选择「以管理员身份运行」Android Studio再测试。验证AS是否能读取到系统环境变量
写一段简单的测试代码,打印所有环境变量来确认:Map<String, String> allEnv = System.getenv(); for (Map.Entry<String, String> entry : allEnv.entrySet()) { Log.d("ENV_CHECK", entry.getKey() + ": " + entry.getValue()); }运行后在Logcat里搜索
GOOGLE_APPLICATION_CREDENTIALS,如果还是找不到,说明AS没加载到系统变量,直接用下面的方法绕过系统环境变量。直接在Android Studio运行配置里设置变量
不用依赖系统环境变量,直接在AS的运行配置中注入:- 点击顶部菜单栏的「Run」→「Edit Configurations」
- 找到你的应用模块,切换到「Environment Variables」标签页
- 点击加号按钮,添加变量名
GOOGLE_APPLICATION_CREDENTIALS,值填JSON文件的绝对路径(比如C:\gcp-keys\my-service-account.json) - 保存配置后重新运行项目
排查路径中的特殊字符
如果JSON文件的路径包含空格、中文或其他特殊字符,可能会导致识别异常。建议把文件移到路径简单的目录下,比如C:\gcp-credentials\key.json,再更新对应的配置。检查Gradle配置是否有覆盖
查看模块级的build.gradle文件,确认有没有通过systemProperty或environment相关代码覆盖环境变量,如果有的话暂时注释掉再测试。
内容的提问来源于stack exchange,提问作者jmacuna
相关产品推荐
相关产品推荐

