Cordova未检测到ANDROID_SDK_ROOT与ANDROID_HOME问题求助
解决Cordova无法检测ANDROID_SDK_ROOT/ANDROID_HOME的问题
我之前也踩过这个一模一样的坑!明明把ANDROID_SDK_ROOT和ANDROID_HOME都配置到环境变量里了,重装SDK也试过,Cordova就是死活检测不到,折腾了好半天才摸清楚几个容易忽略的点,你可以挨个试试:
先确认环境变量真的生效了
别光看配置文件,直接在终端里执行这两个命令:echo $ANDROID_SDK_ROOT echo $ANDROID_HOME如果输出是空的或者不是你配置的路径,说明环境变量没生效:
- 如果你用的是bash,改了
~/.bashrc后要执行source ~/.bashrc重启会话;如果是zsh,要改~/.zshrc再执行source ~/.zshrc - Windows用户要确认是配置在系统变量里,不是用户变量,而且要重启终端甚至电脑才会生效
- 如果你用的是bash,改了
检查Cordova的本地配置是否覆盖了系统变量
看看项目根目录下的config.xml,有没有类似这样的配置:<preference name="AndroidSdkPath" value="/你的/sdk/绝对路径" />如果有,确保路径完全正确;如果没有,可以手动加上这一行,强制Cordova使用指定的SDK路径,有时候它会优先读取这个本地配置。
确认SDK的必要组件都装全了
Cordova认的不只是SDK根目录,还需要对应版本的工具组件:- 打开Android Studio的SDK Manager,检查是否安装了:
- Android SDK Platform(对应你项目的targetSdkVersion)
- Android SDK Build-Tools(建议选Cordova官方文档推荐的版本,比如30.0.3)
- Android SDK Platform-Tools
- 还要把这些工具的路径加到PATH里:
# 比如在bash配置里加 export PATH=$PATH:$ANDROID_SDK_ROOT/platform-tools export PATH=$PATH:$ANDROID_SDK_ROOT/build-tools/你的版本号
- 打开Android Studio的SDK Manager,检查是否安装了:
别用sudo运行Cordova
如果你用sudo执行Cordova命令,会切换到root用户,root的环境变量和普通用户完全不一样,自然检测不到你配置的路径。直接用普通用户身份运行所有Cordova命令就行。重置Cordova的Android平台配置
有时候平台缓存会出问题,试试先移除再重新添加:cordova platform remove android # 可以指定和你SDK匹配的版本,比如android@11.0.0 cordova platform add android@指定版本Windows用户额外注意
路径里不要有空格或者中文,比如别把SDK装在C:\Program Files\Android\Sdk,换成C:\Android\Sdk这种无空格的路径,不然Cordova可能解析失败。
内容的提问来源于stack exchange,提问作者Supagon Srisawas
相关产品推荐
相关产品推荐

