Cordova Android项目构建失败:Java与Gradle版本兼容问题求助
Cordova Android构建失败:Java版本与Gradle插件不兼容问题解决
问题概述
本地环境为Java 20、Gradle 8.3,执行cordova build android构建项目时失败,核心报错为无法解析com.android.tools.build:gradle:8.3.0,原因是插件组件要求Java 11,但项目消费端配置为Java 8,同时存在Gradle插件API版本不匹配问题。
完整报错日志(翻译后)
C:\Users\Alire\OneDrive\Desktop\new app cordova\first>cordova build android 检查Java JDK和Android SDK版本 ANDROID_HOME=C:\Users\Alire\AppData\Local\Android\Sdk(推荐配置) ANDROID_SDK_ROOT=C:\src\src(已废弃) 使用Android SDK: C:\Users\Alire\AppData\Local\Android\Sdk 构建成功,耗时5秒 1个可执行任务:1个已执行 子项目路径: CordovaLib 子项目路径: app 失败:构建因异常终止 - 出错原因: 配置根项目'HelloWorld'时出现问题。 > 无法解析配置':classpath'的所有构件。 无法解析com.android.tools.build:gradle:8.3.0。 被以下项目依赖: project : > 未找到com.android.tools.build:gradle:8.3.0的匹配变体。消费端配置为寻找一个运行时使用的库,兼容Java 8,打包为jar,依赖外部声明,同时需要属性'org.gradle.plugin.api-version'的值为'8.7',但: - 变体'apiElements'声明了一个库,打包为jar,依赖外部声明: - 不兼容:该组件声明为编译时使用,兼容Java 11,而消费端需要运行时使用、兼容Java 8的组件 - 其他兼容属性: - 未提及org.gradle.plugin.api-version(要求为'8.7') - 变体'javadocElements'声明了一个运行时使用的组件,依赖外部声明: - 不兼容:该组件为文档类型,而消费端需要库 - 其他兼容属性: - 未提及元素打包方式(要求为jar) - 未提及目标Java版本(要求兼容Java 8) - 未提及org.gradle.plugin.api-version(要求为'8.7') - 变体'runtimeElements'声明了一个运行时使用的库,打包为jar,依赖外部声明: - 不兼容:该组件兼容Java 11,而消费端需要兼容Java 8的组件 - 其他兼容属性: - 未提及org.gradle.plugin.api-version(要求为'8.7') - 变体'sourcesElements'声明了一个运行时使用的组件,依赖外部声明: - 不兼容:该组件为文档类型,而消费端需要库 - 其他兼容属性: - 未提及元素打包方式(要求为jar) - 未提及目标Java版本(要求兼容Java 8) - 未提及org.gradle.plugin.api-version(要求为'8.7') - 尝试方案: > 查看变体匹配算法说明。 无匹配变体错误的详细解释见相关文档。 使用--stacktrace选项获取堆栈跟踪。 使用--info或--debug选项获取更多日志输出。 使用--scan选项获取完整分析报告。 访问帮助页面获取更多帮助。 构建失败,耗时4秒 命令执行失败,退出码1:C:\Users\Alire\OneDrive\Desktop\new app cordova\first\platforms\android\tools\gradlew.bat cdvBuildDebug C:\Users\Alire\OneDrive\Desktop\new app cordova\first>
解决方案
- 统一Java版本:Cordova Android插件8.x及以上版本要求Java 11或更高版本,需将本地JDK切换至Java 11(推荐使用Adoptium OpenJDK 11),确保
JAVA_HOME环境变量指向Java 11安装路径,并更新系统PATH优先使用该版本。 - 匹配Gradle与Android Gradle插件版本:Android Gradle插件8.3.0对应的Gradle版本范围是8.0-8.3,当前项目使用的Gradle 8.7不兼容。可二选一调整:
- 修改
platforms/android/build.gradle中的classpath,将com.android.tools.build:gradle:8.3.0替换为适配Gradle 8.7的插件版本(如8.7.0); - 保持插件版本为8.3.0,将本地Gradle版本降级至8.3。
- 修改
- 调整项目Java编译配置:在
platforms/android/app/build.gradle中明确指定Java版本:android { compileOptions { sourceCompatibility JavaVersion.VERSION_11 targetCompatibility JavaVersion.VERSION_11 } } - 清理构建缓存:执行
cordova clean android清除旧构建缓存,再重新运行cordova build android。
内容的提问来源于stack exchange,提问作者Istech Persion
相关产品推荐
相关产品推荐

