2018 年执行 ionic cordova build android 时,工程提示:
Could not find an installed version of Gradle
either in Android Studio, or on your system
我检查过配置,认为 Gradle 已经设置好;尝试多次后重启电脑,构建恢复。这个结果是真实的,但没有保留下足够信息证明究竟是哪项环境状态发生了变化。
先检查失败的那个终端
环境变量配置在系统里存在,不代表已启动的终端或 IDE 已经读到了新值。应在发生失败的入口查看命令实际解析到哪里:
# Windows 的命令查找
where.exe gradle
gradle --version
cordova requirements android
# macOS / Linux 的命令查找
command -v gradle
gradle --version
cordova requirements android
Cordova 的命令是 requirements,不是 -requirements。Cordova CLI 参考
比较新开终端与旧终端、命令行与 IDE 的结果,可以判断是否存在环境继承差异。重开终端或重启 IDE 往往比直接重启整台电脑更容易隔离变量,但这不能反过来证明当年的根因已经确定。
Wrapper 下载失败是另一类问题
另一次记录遇到的是 Gradle 分发包下载失败。此时启动过程已经走到了获取指定版本的阶段,不应继续按“系统找不到命令”处理。
检查项目的 gradle/wrapper/gradle-wrapper.properties,确认 distributionUrl 指向哪个版本,再结合实际日志判断 DNS、代理、证书、权限或下载内容问题。缓存目录与分发 URL 相关,不存在所有项目通用的固定缓存子目录。
需要人工提供分发包时,应使用可信来源并核对完整性,不要把未知压缩包随意放入缓存。支持该选项的 Wrapper 可配置 distributionSha256Sum 校验。Gradle Wrapper 文档
按阶段处理,而不是统一“重启解决”
没有发现 Gradle、下载分发包失败、Gradle 已启动后编译失败,是三个不同阶段。先保留完整错误、工具链版本和启动入口,再只改变一个条件重试,才能让下一次排查不再依赖碰运气。