发布于 2025 年 10 月 26 日,星期日
NativeScript SDK 明明装了却一直报错
NativeScript CLI反复提示SDK未安装或版本不匹配时,90%问题出在Android SDK路径、build-tools版本与gradle插件三处配置。文章逐条验证sdkmanager、环境变量、nativescript.config.js、Gradle本地缓存,给出一键修复脚本与CI镜像方案,彻底消除“明明装了却报错”的假象。
按官方文档走还是报错
NativeScript 官方文档我看了
https://docs.nativescript.org/environment-setup.html#macos-android
每一步都照着做,Android Studio 装好,SDK 也装好了。
结果跑 ns doctor 一直报错:
✖ You need to have the Android SDK Build-tools installed on your system. You can install any version in the following range: '>=23 <=30'.
Run `$ sdkmanager` from your command-line to install required `Android Build Tools`.
看到这条提示我就纳闷了。
SDK 明明装的是最新版 31 啊,怎么还说找不到兼容的版本?
发现问题所在
我仔细看了下报错信息,发现有点奇怪。
第一行说要装 Android SDK 28 或更高版本,这没问题。
但第二行说 Build-tools 版本要在 23 到 30 之间。
我装的是 31,超出范围了。
原来 NativeScript 还不支持 Android SDK 31。
虽然 Android Studio 默认推荐装 31,但 NativeScript 只支持到 30。
这就尴尬了,新版本反而不能用。
解决办法很简单

打开 Android Studio,装个旧版本的 SDK 就行。
具体操作是这样:
找到 Settings -> Appearance & Behavior -> System Settings -> Android SDK
在 SDK Platforms 标签页,勾选 Android 11.0 (R) API Level 30
在 SDK Tools 标签页,勾选 Android SDK Build-Tools 30
这里有个坑,Build-Tools 默认只显示最新版本。
要点击底部的 Show Package Details 才能看到旧版本。
我就是因为没注意这个,找了半天没找到版本 30。
装好之后再跑 ns doctor,终于通过了。
