You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cordova编译Android报错:未检测到已安装Build Tools及环境变量疑问

问题:Cordova 12.0.0编译Android应用时无法识别已安装的Build Tools 34.0.0

环境信息

  • 系统:Mac Sonoma 14.5
  • Cordova版本:12.0.0(cordova-lib@12.0.1)
  • 已安装组件:Android Build Tools 34.0.0、SDK 14(路径:/Users/ja/Library/Android/sdk)

报错信息

执行cordova build android时触发错误:

$ cordova build android
Checking Java JDK and Android SDK versions
ANDROID_HOME=undefined (recommended setting)
ANDROID_SDK_ROOT=/Users/ja/Library/Android/sdk (DEPRECATED)
Using Android SDK: /usr/local/Caskroom/android-platform-tools/35.0.1
BUILD SUCCESSFUL in 989ms
1 actionable task: 1 up-to-date
Subproject Path: CordovaLibSubproject Path: app
FAILURE: Build failed with an exception.
* Where:Script '/Users/ja/Documents/works/stellantis/tablets-app/hello/platforms/android/CordovaLib/cordova.gradle' line: 73
* What went wrong:
A problem occurred evaluating script.
> No installed build tools found. Please install the Android build tools version 34.0.0.

已执行操作

  1. 通过Android Studio完成SDK 14和Build Tools 34.0.0的安装,确认Build Tools路径存在:/Users/ja/Library/Android/sdk/build-tools/34.0.0
  2. 在~/.bash_profile和~/.zshrc中配置环境变量:
export ANDROID_HOME=~/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin:$ANDROID_HOME/platform-tools
  1. 执行source ~/.bash_profile和source ~/.zshrc重载配置

疑问

  1. 日志中为何显示ANDROID_HOME=undefined?
  2. Cordova为何使用/usr/local/Caskroom/android-platform-tools/35.0.1作为SDK路径,而非指定的/Users/ja/Library/Android/sdk?

解决方案

修复ANDROID_HOME未识别问题

  • 验证配置是否生效:终端执行echo $ANDROID_HOME,若输出为空,说明配置未加载。Mac Sonoma默认shell为zsh,需确保~/.zshrc中的配置无语法错误,且未被其他配置覆盖。可临时在终端执行export ANDROID_HOME=/Users/ja/Library/Android/sdk,再运行编译命令测试。
  • 清理废弃变量冲突:ANDROID_SDK_ROOT已被废弃,若系统中存在该变量可能干扰Cordova读取,执行unset ANDROID_SDK_ROOT后重新编译。

修正SDK路径错误问题

  • 调整PATH优先级:Homebrew Cask安装的android-platform-tools可能在PATH中优先级更高,导致Cordova误识别。修改PATH配置将Studio SDK路径前置:
export PATH=$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin:$PATH
  • 强制指定SDK路径:
    • 项目根目录修改config.xml,添加配置:
      <platform name="android">
          <preference name="AndroidSdkPath" value="/Users/ja/Library/Android/sdk" />
      </platform>
      
    • 或编译时直接指定:
      cordova build android -- --android-sdk-root=/Users/ja/Library/Android/sdk
      

额外排查步骤

  • 检查Build Tools完整性:打开Android Studio的SDK Manager,确认Build Tools 34.0.0安装完整,无损坏。可尝试卸载后重新安装。
  • 调试gradle逻辑:进入platforms/android/CordovaLib/cordova.gradle文件,在第73行前添加println("Looking for build tools in: " + androidSdkDir),重新编译查看输出路径,定位查找逻辑问题。

内容的提问来源于stack exchange,提问作者djo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 11:50:23