构建Android Cordova应用提示Android SDK废弃、JDK版本不匹配如何解决
Cordova Android 构建报错解决方案
问题根因
你遇到的报错包含三个独立问题:
- 仅配置了已废弃的
ANDROID_HOME环境变量,缺少新版构建工具要求的ANDROID_SDK_ROOT变量 - 当前全局JDK版本为16,不符合Cordova稳定版要求的JDK 8(1.8.*)规范
- 系统存在多份Android SDK,当前优先读取了homebrew安装的caskroom版本SDK,而非你自定义路径下的SDK
解决步骤
- 修正Android SDK环境变量配置
打开你的.zshrc(你提到的zhsrc为输入笔误)配置文件,将原有SDK相关配置替换为以下内容:
export PATH=/Users/adam/.npm-global/lib/node_modules/@ionic/cli/bin:$PATH # 配置新版推荐的SDK根目录变量 export ANDROID_SDK_ROOT=~/Library/Android/sdk # 保留旧版兼容变量,避免旧工具报错 export ANDROID_HOME=$ANDROID_SDK_ROOT export PATH=${PATH}:${ANDROID_SDK_ROOT}/tools export PATH=${PATH}:${ANDROID_SDK_ROOT}/platform-tools
保存后执行source ~/.zshrc生效,执行echo $ANDROID_SDK_ROOT验证,输出/Users/adam/Library/Android/sdk即为配置正常。
如果仍然读取caskroom路径的SDK,执行brew uninstall android-sdk卸载homebrew安装的冗余SDK即可。
- 切换JDK版本到1.8.x
Cordova Android稳定版仅支持JDK 8,你可以先安装JDK 8,安装完成后在.zshrc中追加以下配置,指定默认JDK版本:
# 配置JDK 8为默认JAVA环境 export JAVA_HOME=$(/usr/libexec/java_home -v 1.8) export PATH=$JAVA_HOME/bin:$PATH
保存后再次执行source ~/.zshrc生效,执行java -version验证,输出版本号前缀为1.8.即为配置正常。
- 验证构建
重新执行cordova build android即可正常完成构建。
内容的提问来源于stack exchange,提问作者ASHafizullah
相关产品推荐
相关产品推荐

