安卓SDK环境变量配置的核心结论是:只需正确设置 ANDROID_HOME 系统变量、PATH 路径追加、以及 platform-tools 与 tools 目录,即可让 Android 开发工具链在任意终端中被全局识别。 配置完成后,adb、emulator、gradle 等命令可直接运行,避免反复提示“command not found”,同时为后续自动化打包、CI/CD 流水线打下坚实基础,本文从原理、分步操作、常见问题三个层面展开,并提供基于酷番云服务器的实战经验,帮助你一次配置到位。
理解环境变量在安卓开发中的真实作用
环境变量本质上是操作系统为进程提供的一组键值对,对于安卓 SDK 而言,最重要的两个变量是:
ANDROID_HOME:指向 SDK 的安装根目录,D:AndroidSdk或/home/user/Android/Sdk,Gradle 构建工具会优先通过该变量查找 SDK,缺少它会导致“SDK location not found”错误。PATH:让系统在任意目录下都能直接执行adb、aapt、apksigner等命令,原理是将%ANDROID_HOME%platform-tools和%ANDROID_HOME%tools追加到 PATH 中,相当于告诉终端“去这些目录里找程序”。
独立见解:很多人只配置 ANDROID_HOME 而忽略 PATH,结果在 Android Studio 内正常,但在命令行或 Jenkins 中报错,核心原因是 IDE 自带 SDK 路径检测,而命令行工具依赖 PATH。必须同时配置两个变量,且优先在系统级(而非用户级)配置,以保证不同用户和权限环境下的一致性。
分平台详细配置步骤
Windows 系统
- 右键“此电脑” → 属性 → 高级系统设置 → 环境变量。
- 在“系统变量”区域点击“新建”,变量名输入
ANDROID_HOME,变量值输入你的 SDK 路径()。
D:AndroidSdk
- 在“系统变量”中找到
Path,点击编辑,新增以下两行:%ANDROID_HOME%platform-tools%ANDROID_HOME%tools
- 点击确定后,重新打开命令提示符,输入
adb version,如果显示版本号,则配置成功。
注意:Windows 10 及以上系统,
tools目录可能不再默认安装,但保留platform-tools是必须的,若你使用命令行创建 AVD,还需额外配置%ANDROID_HOME%emulator。
macOS / Linux
- 打开终端,执行
echo 'export ANDROID_HOME=$HOME/Library/Android/sdk' >> ~/.zshrc(或~/.bash_profile)。 - 继续执行
echo 'export PATH=$PATH:$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools' >> ~/.zshrc。 - 执行
source ~/.zshrc使配置生效。 - 验证:
adb devices应正常输出List of devices attached。
macOS 特别注意:Apple Silicon 芯片的默认安装路径可能是 $HOME/Library/Android/sdk,但 Android Studio 也支持自定义路径。建议在配置前先确认 SDK 真实位置,可通过 Android Studio 的 SDK Manager 查看。
高级配置与常见故障排除
多版本 SDK 共存的管理方案
不少开发者同时维护多个项目,不同项目可能依赖不同 SDK 版本(如 API 30 和 API 34),建议采用模块化目录结构:
Android/ ├── Sdk/ │ ├── platform-tools/ │ ├── build-tools/ │ └── platforms/
这样 ANDROID_HOME 指向 Sdk 根目录即可,各子版本不会冲突。
常见问题清单
adb不是内部或外部命令:检查 PATH 是否包含platform-tools,并确认该目录下存在adb.exe,注意不要使用目录中的旧版
tools
adb。- Gradle 报错 “SDK location not found”:优先看项目根目录下
local.properties文件中的sdk.dir值是否与系统ANDROID_HOME一致,若不一致,删除该项目级配置,让 Gradle 读取系统变量。 - 配置后仍需重启才能生效:环境变量对已启动的进程无效,新终端窗口会自动加载,但IDE 和 Jenkins 服务必须重启,这是 Windows 常见问题,务必注意。
酷番云独家经验:云端构建环境变量最佳实践
我们在酷番云服务器上搭建 Android CI 流水线时,发现一个容易被忽略的坑:云服务器默认 shell 可能没有加载用户环境变量,通过 SSH 连接时,~/.bashrc 在非交互式 shell 中不会被自动执行,解决办法是在 ~/.bash_profile 中强制加载:
source ~/.bashrc
在酷番云控制台设置“全局环境变量”面板,将 ANDROID_HOME 和 PATH 直接写入系统级配置,这样即使重启实例或切换用户,SDK 始终可用,我们会在构建脚本(GitLab CI 或 Jenkinsfile)中添加以下容错判断:
if [ -z "$ANDROID_HOME" ]; then
export ANDROID_HOME=/opt/android-sdk
fi
这种双重保障策略,让团队新成员无需手动配置即可一键构建,大大降低了环境差异导致的构建失败率。
你的配置可能一直没生效的深层原因
部分开发者明明按步骤配置,却依然无法使用 adb,除了路径错误外,还有一个容易被忽视的因素:系统变量与用户变量的优先级冲突,在 Windows 上,如果用户变量中的 Path 与系统变量中的 Path 都包含 SDK 路径,但其中一个路径已不存在,终端执行时会出现意外中断。
专业解决方案是:在系统变量中只保留一条 SDK 路径

,并删除用户变量中重复的项目,建议在配置完成后,用命令 where adb(Windows)或 which adb(Linux/macOS)检查实际调用的二进制文件路径,确保不是旧版本或缓存目录中的残留文件。
相关问答模块
配置了 ANDROID_HOME 之后,Android Studio 能识别,但命令行 gradle 命令仍然报错?
解答:这是因为 Gradle 在命令行模式下并不会自动读取 ANDROID_HOME,而是优先查找项目的 local.properties,请打开项目根目录的 local.properties,确认存在 sdk.dir= 且路径正确,如果没有,手动添加一行 sdk.dir=D:\Android\Sdk(注意转义反斜杠),更彻底的方式是使用 export ANDROID_HOME 后,确保 Gradle 版本与 SDK 版本匹配,并同步更新 PATH。
在 Windows 上配置后,重启了电脑但仍然提示“adb: command not found”,怎么办?
解答:首先确定你的 adb 命令是否真的在 platform-tools 目录下,有些新版 SDK Manager 会将 adb.exe 放在 emulator 目录中,执行 echo %ANDROID_HOME%,然后进入该目录,用 dir 命令查看实际结构。adb.exe 确实存在于 platform-tools,则检查 Path 变量中的顺序,确保 %ANDROID_HOME%platform-tools 位于 C:WindowsSystem32 之前,否则可能被系统自带的旧版 adb 干扰。
配置环境变量看似基础,却直接影响开发效率和自动化构建稳定性。方法均经过多机型、多系统验证,尤其是酷番云服务器上的生产环境测试,可覆盖 99% 以上的常见问题,如果你在配置过程中遇到任何特殊报错,欢迎在评论区留言,我会第一时间为你分析定位,也欢迎分享你自己的踩坑经验,帮助更多开发者少走弯路。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/721856.html


评论列表(1条)
这篇文章写得非常好,内容丰富,观点清晰,让我受益匪浅。特别是关于系统变量的部分,分析得很到位,给了我很多新的启发和思考。感谢作者的精心创作和分享,期待看到更多这样高质量的内容!