← 返回博客列表

Android SDK 与命令行工具下载失败:清单、许可证和路径

2026-09-22 · 刺猬VPN

装 Android 开发环境时,图形界面和命令行会停在同一步:拉不下 SDK 清单。命令行里常见下载清单失败或连接被重置,地址指向 dl.google.com。Android Studio 则在设置里的 SDK 管理器转圈,平台列表出不来。有人已经勾了平台,下一步却停在许可证没人接受。

这三步要分开:命令行工具的目录对不对、清单主机通不通、许可证有没有在这个用户下接受过。镜像能缓解,但版本可能落后。下面先让官方清单能打开,再装平台和构建工具。组件名称以你本机 sdkmanager --list 的输出为准。

图形界面、命令行和镜像各管什么

图形界面能装、脚本不能装,多半是脚本用了另一个 SDK 目录或没把命令行工具放进 cmdline-tools 的 latest 目录。先让两边指向同一份 SDK。

对比项Android Studiosdkmanager第三方镜像
入口设置里的 SDK 管理器cmdline-tools 里的 sdkmanager另一套主机名
清单同一份 Google 清单sdkmanager --list可能不是当天的包
典型失败列表一直转圈下载清单失败或连接重置缺包或校验不对
许可证界面里点接受sdkmanager --licenses不代替官方许可证
路径界面写的是 SDK 位置ANDROID_HOME 必须指向同一位置不改变路径
适合日常勾选平台脚本和持续集成明确接受延迟时

从清单失败到能编译:分步操作

  • 第一步:先把网络线路准备好,再打开 SDK 管理器或执行 sdkmanager。安装刺猬VPN,自定义用户名和密码注册,不需要邮箱和手机号。连上后再访问 dl.google.com,让清单和组件包走同一条线路。免费节点永久免费、不限流量、不限速。
  • 第二步:浏览器打开 dl.google.com 上的 Android 仓库页面或至少确认主机能响应。打不开就换节点。不要先改包名。
  • 第三步:安装命令行工具时,解压后的目录应类似 SDK 根下的 cmdline-tools/latest/bin。少了 latest 这一层,sdkmanager 会找不到自己,报错看起来像网络失败。
  • 第四步:设置 ANDROID_HOME 指向 SDK 根目录,并把 cmdline-tools 的 bin 以及 platform-tools 放进路径。新开一个终端再执行 sdkmanager --list。旧终端可能还停在没改过的路径上。
  • 第五步:清单能列出包之后,再装你需要的平台和构建工具,例如平台包和 platform-tools。名称以 --list 里看到的为准,不要凭记忆写一个不存在的版本。
  • 第六步:第一次安装会停在许可证。执行 sdkmanager --licenses,把每一份都接受。只在图形界面点过、脚本用户不同,脚本仍会停在未接受许可证。
  • 第七步:Android Studio 的 SDK 位置改成同一个 ANDROID_HOME。设置里的语言和框架、Android SDK 页面,确认已安装的平台和命令行看到的一致。SDK Tools 页里若没有命令行工具,勾选后再装一次。
  • 第八步:准备上架时,构建能过只是开始。应用签名和商店后台见 Google Play 管理后台。本机有 SDK 不代表后台账号能登录。

按失败停在哪一行

  • 下载清单失败或连接重置:清单主机没通。浏览器试 dl.google.com,换节点后再 --list。
  • 提示找不到 sdkmanager:目录不是 cmdline-tools/latest。把解压结果移到这一层,不要多套一层文件夹。
  • ANDROID_HOME 为空:脚本和图形界面各用各的目录。设好之后新开终端。
  • 许可证未接受:执行 --licenses。持续集成要用同一用户或预先接受,不要等交互提示。
  • 某个平台在列表里没有:版本号写错或清单是旧的。先 --list,再复制准确的包名。
  • 只有 Studio 转圈、命令行成功:Studio 用了代理或另一条线路。以命令行能列出的为准,把 Studio 的 SDK 路径改过去。
  • 包下到一半损坏:删掉该组件目录后重装这一份,不要把整个 SDK 都删掉。

官方清单和镜像怎么选

发布用的构建优先官方清单。刺猬VPN可按域名分流,让 dl.google.com 走线路。实际可用性取决于当前网络环境。

对比项会员节点直连官方公共镜像免费节点
清单新鲜度与官方一致可能落后一个版本只验证主机能否打开
许可证必须接受官方条款不跳过不跳过
校验与清单一致要自行核对不替代核对
流量时长套餐期间不限流量、不限速由镜像决定永久免费、不限流量、不限速
适合要复现的构建能接受延迟的内网先判断是不是网络
失败形态重置或超时缺包时通时不通

目录、用户和持续集成

同一台电脑上,图形界面用你的登录用户,脚本用另一个用户时,许可证接受记录不共享。在真正执行构建的那个用户下再跑一次 --licenses。把 ANDROID_HOME 写进该用户的环境,而不是只写在你自己的终端配置里。

持续集成的机器没有桌面。先在有浏览器的电脑上确认 dl.google.com 能开,再让构建机走同一条线路策略。构建脚本里写死包名之前,把 --list 的相关行保存下来,避免上游改名后脚本还在装旧名字。

命令行工具升级后,旧的 latest 目录可能变成一长串版本号。新工具要重新放回 latest,否则路径仍指向旧二进制,新清单永远不会被使用。升级当天先 --list 成功,再改构建脚本。

团队说明里写上 SDK 根目录、命令行工具的层级和接受许可证的命令。新人不要从随机镜像教程里复制一整段环境变量。那些变量可能把清单永久指到一个已经停止更新的主机。官方清单恢复之后,先删掉多余变量,再重试。

只缺一个平台包时,不要重装整个 Android Studio。删掉那个平台目录,用准确包名再装一次。Studio 的界面勾选和命令行包名不一致时,以命令行 --list 为准,界面刷新后再看是否出现。两处都成功,才把路径写进项目文档。

和商店后台、其他仓库的分工

SDK 装好不等于能登录 Play 管理后台。账号、应用列表和测试轨道见 Google Play 管理后台。Maven、npm 等其他仓库的超时不要用 sdkmanager 的参数去修,见 开发包仓库打不开。

每种工具只改自己的配置。验收标准是:新开的终端里 --list 能列出包,并且 Studio 指向同一 SDK 根目录。

常见报错速查表

现象原因解决办法
下载清单失败到不了 dl.google.com浏览器确认主机,换节点后再列出
找不到 sdkmanager目录缺少 latest 层放到 cmdline-tools/latest
ANDROID_HOME 为空变量没进当前终端写进环境并新开终端
停在许可证这个用户没接受执行 sdkmanager --licenses
列表里没有该平台包名记错或清单旧从 --list 复制包名
只有 Studio 转圈它用了另一条路径或线路把 SDK 位置改成同一根目录
组件损坏下载中断只删该组件目录后重装

新电脑、旧变量和只缺一个平台时

换一台电脑时,不要把旧机器的整个 SDK 文件夹拷过来就以为清单还有效。命令行工具的版本和路径经常对不上,清单仍会失败。在新电脑上先让浏览器打开下载主机,再按 latest 目录重新放好工具,然后列出包。列出成功之后,只安装项目文档里写明的那几个包名,不要把旧机器上多出来的试验平台一起装上。

环境变量里如果还留着镜像地址,新的官方清单会被永久改道。先把多余变量删掉,新开终端,再列出包。看到的主机名不是官方下载主机,就还没删干净。删干净之前不要接受许可证,否则你接受的是另一份来源的条款,和后来切回官方的包对不上。

图形界面勾选了平台、命令行却说没有这个包,是两边的清单不是同一时刻刷新的。以新开终端里的列表为准,把准确名字抄进脚本。界面刷新后若仍没有,重启一次界面再看,不要同时点安装。两个安装进程抢同一个目录,会留下损坏的组件,下次仍报下载失败。

只损坏一个平台时,删除那个平台的目录再装一次。构建工具、平台工具和模拟器镜像是三份不同的包,不要因为模拟器镜像很大就认定整次失败都是它。先让平台工具装上,确认命令能打印设备列表,再决定要不要下模拟器。

持续集成第一次失败,把日志里的主机名发给能打开浏览器的人。对方确认主机能开,再看构建机的变量和用户。对方确认主机不能开,就先处理线路,不要改项目里的编译版本。编译版本和清单失败是两件事,同一轮里只改一件。

文档的第一行写 SDK 根目录和列出包的命令,第二行写接受许可证的命令。新人失败时先原样执行这两行。两行都成功,才允许改包名。这样整组人不会在某一天因为一份过期镜像一起装不上。

模拟器镜像很大,失败时先确认平台工具已经可用。平台工具能列出设备,说明清单和许可证都过了,剩下的是单独一份大文件。把那一份删掉重下,不要从头重装整个环境。重装会让你分不清是目录又放错了,还是只是这一份文件中断。

同一仓库里如果有人用图形界面、有人只用脚本,两边的 SDK 根必须写进同一份说明。各写各的路径,许可证会在一个用户下通过、在另一个用户下再次拦住。构建失败时先问执行的是哪个用户,再问线路。

清单时通时不通,不要在失败的当口改编译用的平台版本。等列出包的命令连续成功两次,再改版本。连续成功说明线路和目录是稳的,之后的失败才值得当成版本问题来看。两个人同时安装时,先让一个人装完再让另一个人装,避免抢同一个目录留下损坏文件。损坏之后只删那一份,不要把已经列成功的环境全部推翻。先确认列出包的命令仍然成功,再继续装缺失的那一份。

高频问答

  • 问:必须装 Android Studio 吗?答:只写脚本可以只装命令行工具。界面和脚本要指向同一 SDK 根。
  • 问:镜像能不能代替官方?答:能缓解下载,但可能落后。发布构建仍建议能打开官方清单。
  • 问:许可证要接受几次?答:每个执行构建的用户一次。换用户或换机器要再接受。
  • 问:免费节点够不够?答:够试清单能否打开。大平台包用时长套餐,期间不限流量、不限速。
  • 问:能只代理 Studio 吗?答:客户端没有按应用勾选的列表。用按域名的智能分流覆盖下载主机。
  • 问:包名从哪抄?答:从本机 sdkmanager --list,不要从过期的博客抄。

交给脚本之前

Android SDK 下载失败时,先确认命令行工具在 latest 目录、清单主机能开、许可证已接受。图形界面和脚本共用一个 SDK 根。不要在清单还失败时改包名。

刺猬VPN采用 HTTPS+AES 加密传输。匿名注册不需要邮箱和手机号。免费节点永久免费、不限流量、不限速。时长套餐有效期内不限流量、不限速。组件能否下完取决于当前网络环境。

立即下载刺猬VPN:从注册到连接,三分钟完成

刺猬VPN提供永久免费节点,不限流量;无需邮箱,自定义用户名即可匿名注册。一个账号支持多设备同时在线,实际可用性取决于当前网络环境。