Cordova在Mac上构建/模拟Android时持续出现Gradle错误求助
问题根源与解决方案
从你给出的错误信息Could not determine java version from '9.0.1'来看,核心问题出在Cordova当前使用的Android平台内置Gradle版本不兼容Java 9及以上版本。
旧版Gradle(比如你提到的4.4其实也不够——Gradle 4.6才开始正式支持Java 9)无法识别Java 9+的版本号格式(比如9.0.1这种不带1.前缀的版本号),而且你之前更新全局Gradle没用的原因是:Cordova的Android平台默认会使用它自己打包在项目里的Gradle wrapper,不是你全局安装的那个。
下面是几个可行的解决办法,按推荐程度排序:
1. 降级Java到8版本(最稳妥方案)
Cordova对Java 8的兼容性是最完善的,而且大部分Android构建工具(比如旧版SDK Build Tools)也只支持Java 8。你可以在Mac上这样操作:
- 下载OpenJDK 8或者Oracle JDK 8
- 使用
jenv这类工具快速切换Java版本,或者手动修改JAVA_HOME环境变量指向JDK 8的安装路径 - 验证:终端输入
java -version,确认输出是1.8.x开头的版本
2. 强制Cordova项目使用兼容Java 9+的Gradle版本
如果不想降级Java,你可以手动修改项目里的Gradle配置:
- 打开项目目录下的
platforms/android/gradle/wrapper/gradle-wrapper.properties - 找到
distributionUrl这一行,把它改成支持Java 9+的Gradle版本,比如:
(这个版本支持Java 8到11,兼容性很好)distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip - 保存文件后,重新执行
cordova build android或cordova emulate android
3. 升级Cordova Android平台到最新稳定版
旧版Cordova Android平台(比如低于8.0.0的版本)依赖的Gradle版本较低,升级平台可以直接解决版本兼容问题:
- 先移除旧平台:
cordova platform remove android - 再添加最新稳定版:
cordova platform add android@latest - 新平台会自带适配更高Java版本的Gradle配置,之后再尝试构建应该就能正常运行了
另外还要注意:修改Java环境后,最好重启终端或者重新加载环境变量,确保JAVA_HOME指向的是正确的JDK路径。
内容的提问来源于stack exchange,提问作者MatPonting
相关产品推荐
相关产品推荐

