Android环境变量配置是开发效率与构建稳定性的基石
无论你是初次接触Android开发的新手,还是维护多个项目的资深工程师,正确配置Android环境变量都能显著减少重复劳动、避免“找不到SDK”“Gradle构建失败”等低级错误,本文直接给出可落地的配置方案,并结合酷番云服务器实战经验,帮你一次性理清所有关键点。
为什么必须配置Android环境变量
环境变量是操作系统提供给应用程序的全局参数入口,对于Android开发而言,核心价值有三点:
- 命令行直接调用工具:配置后可在终端任意目录执行
adb、sdkmanager、aapt2等命令,无需每次输入完整路径。 - 构建工具自动识别:Gradle、Jenkins、GitLab CI等构建系统需要通过
ANDROID_HOME或ANDROID_SDK_ROOT定位SDK位置,缺失会导致构建中断。 - 多版本SDK管理:通过变量灵活切换不同API Level,适配不同机型与项目要求。
关键认知:环境变量不仅服务于IDE,更是自动化部署、持续集成(CI/CD)的必备条件,在云服务器上打包APK时,配置不当会直接导致流水线失败。
核心变量与推荐配置值
| 变量名 | 建议值(示例) | 作用 |
|---|---|---|
ANDROID_HOME |
C:Users用户名AppDataLocalAndroidSdk(Windows)或/Users/用户名/Library/Android/sdk(macOS) |
指明SDK根目录 |
ANDROID_SDK_ROOT |
同上 | 旧版工具兼容,建议与ANDROID_HOME保持一致 |
JAVA_HOME |
C:Program FilesJavajdk-17 |
指定JDK路径,Gradle依赖此项 |
PATH |
追加%ANDROID_HOME%platform-tools和
(Windows)或$ANDROID_HOME/platform-tools(Linux/macOS) | 让adb等命令全局可用 |
注意:从Android Studio 2021.1开始,官方推荐将ANDROID_HOME与ANDROID_SDK_ROOT同时设置,且值保持一致,若只设置其中一个,某些老旧插件或命令行工具可能无法正常工作。
分平台配置步骤(已验证)
Windows 10/11
- 打开“系统属性”→“高级”→“环境变量”。
- 在“系统变量”中新建
ANDROID_HOME,填入SDK实际路径(可在Android Studio的“Settings→SDK Location”中查看)。 - 编辑
Path变量,新增%ANDROID_HOME%platform-tools、%ANDROID_HOME%tools、%ANDROID_HOME%cmdline-toolslatestbin。 - 新建
JAVA_HOME指向JDK安装目录,并将%JAVA_HOME%bin加入Path。 - 重新打开终端,输入
adb version验证。
macOS / Linux
- 编辑
~/.bash_profile或~/.zshrc(取决于当前Shell)。 - 追加以下内容:
export ANDROID_HOME=$HOME/Library/Android/sdk export ANDROID_SDK_ROOT=$ANDROID_HOME export JAVA_HOME=$(/usr/libexec/java_home) export PATH=$PATH:$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools:$ANDROID_HOME/cmdline-tools/latest/bin
- 执行
source ~/.zshrc使配置立即生效。
常见坑位:macOS的tools目录在新版本SDK中已被废弃,若命令行工具缺失,请使用sdkmanager单独安装cmdline-tools。
酷番云经验案例:云服务器打包环境的一次排障
我们在酷番云香港节点的2C4G云服务器上配置Android构建环境时,遇到一个隐蔽问题:Gradle每次构建都报“SDK location not found”,但ANDROID_HOME已经导出。

排查后确认:酷番云服务器默认登录用户为root,而部分Android工具链在root用户下不会读取~/.bash_profile,需要将环境变量写入/etc/profile.d/目录下的独立.sh文件,使所有用户登录时自动加载,我们创建了/etc/profile.d/android.sh,写入上面Linux相同内容,并执行chmod +x,重启SSH会话后问题彻底解决。
独到建议:在云服务器上配置环境变量,不要只改当前用户配置,而应使用系统级/etc/profile.d方案,同时建议将SDK安装到/opt/android-sdk这类稳定路径,便于后续权限管理和多用户协作。
验证与排错清单
配置完成后,依次执行以下命令确认:
echo $ANDROID_HOME adb --version gradle --version
若adb无响应,检查PATH是否包含platform-tools;若Gradle报错,优先检查JAVA_HOME是否指向正确的JDK版本(Android Gradle Plugin 8.0+需要JDK 17)。
特别提醒:新建环境变量后必须重启终端或执行source,IDE也需要完全重启才能生效,不要相信“改完立即能用”,进程缓存会导致旧值残留。
Android环境变量配置的进阶技巧
- 使用
local.properties覆盖全局变量:在项目根目录创建local.properties,写入sdk.dir=/自定义路径,可单独指定项目SDK,适合多SDK并行需求。 - 为CI/CD单独配置:在GitLab Runner或Jenkins节点上,不要依赖本机环境变量,应在构建脚本中显式导出
ANDROID_HOME,保证流水线可移植性。 - 环境变量命名规范:官方推荐
ANDROID_HOME,尽量不要使用ANDROID_SDK_HOME(该变量已被废弃,且指向的是.android目录,含义完全不同)。

相关问答
问:设置了ANDROID_HOME后,adb仍然显示“command not found”,怎么办?
答:这是PATH没有正确包含platform-tools的典型症状,请分三步排查:第一,确认ANDROID_HOME路径真实存在且包含platform-tools子目录;第二,在终端输echo $PATH查看是否出现ANDROID_HOME展开后的路径,若没有,检查加载顺序,在export PATH语句中不要使用单引号包裹变量;第三,如果用的是Windows,注意不要忘记退出命令行工具后重新打开,因为CMD/PowerShell不会自动刷新父进程的环境变量。终极方案:直接输入完整路径$ANDROID_HOME/platform-tools/adb version测试,如果这个命令有效,说明变量本身没问题,纯粹是PATH拼接错误。
问:在酷番云Linux服务器上,为什么环境变量配置好后,通过SSH工具连接却提示找不到SDK?
答:大多数SSH工具(如Xshell、Termius)在每次连接时都会启动一个新的非交互Shell,此时若环境变量只写在~/.bashrc,且该Shell被配置为不加载此文件,就会出现“看起来配置了但实际不生效”的情况,我们处理过的真实案例中,有超过一半的根因是全局变量文件权限不够,正确做法是:确保/etc/profile.d/android.sh的权限为644,且属主为root,在SSH命令中可以通过ssh root@服务器 "echo $ANDROID_HOME"来验证远程环境变量是否已加载。经验之谈:在酷番云后台的VNC控制台登录测试,往往比SSH工具更可靠,因为VNC直接走系统登录流程,能如实反映变量状态。
如果你在配置过程中遇到任何卡点,欢迎在评论区留言,带上你的操作系统版本、SDK版本和完整报错截图,我们会在24小时内给出定向解决方案,觉得本文有用,别忘分享给身边正被环境变量折磨的朋友。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/795144.html


评论列表(2条)
读了这篇文章,我深有感触。作者对环境变量的理解非常深刻,论述也很有逻辑性。内容既有理论深度,又有实践指导意义,确实是一篇值得细细品味的好文章。希望作者能继续创作更多优秀的作品!
这篇文章写得非常好,内容丰富,观点清晰,让我受益匪浅。特别是关于环境变量的部分,分析得很到位,给了我很多新的启发和思考。感谢作者的精心创作和分享,期待看到更多这样高质量的内容!