所有依赖已更新,Cordova构建Android项目仍报错
Cordova构建Android项目报错:Unsupported class file major version 67
问题描述
我已经尝试解决这个问题很久了,尽管Android SDK、Cordova、Gradle和Java都更新到了最新版本,但执行cordova build android命令构建项目时仍然报错。当前使用的版本是Java 23.0.2、Gradle 8.12.1。我尝试切换版本并调试,始终遇到版本不兼容相关错误,具体报错信息如下:
BUILD SUCCESSFUL in 2s 1 actionable task: 1 up-to-date Subproject Path: CordovaLib Subproject Path: app Starting a Gradle Daemon, 1 incompatible Daemon could not be reused, use --status for details FAILURE: Build failed with an exception. * What went wrong: BUG! exception in phase 'semantic analysis' in source unit '_BuildScript_' Unsupported class file major version 67 > Unsupported class file major version 67 * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. > Get more help at https://help.gradle.org. BUILD FAILED in 35s Command failed with exit code 1: /Users/vivannkhanna/myApp/platforms/android/tools/gradlew cdvBuildDebug
问题原因
Unsupported class file major version 67对应Java 23的类文件版本。虽然Gradle 8.12.1官方宣称支持Java 23,但Cordova Android插件目前对Java 23的适配还不完善,导致Gradle无法处理高版本Java编译的类文件,引发兼容性错误。
解决方案
降级Java到LTS稳定版
建议切换到Java 21(长期支持版本,兼容性最优):- 安装Java 21并设置系统环境变量
JAVA_HOME指向其安装路径,终端执行java -version确认版本切换成功。 - 在项目的
platforms/android/build.gradle中明确指定Java版本:android { compileOptions { sourceCompatibility JavaVersion.VERSION_21 targetCompatibility JavaVersion.VERSION_21 } }
- 安装Java 21并设置系统环境变量
升级Cordova Android插件
检查当前cordova-android版本,执行cordova platform ls查看。如果版本低于12.x,执行以下命令升级:cordova platform remove android cordova platform add android@latest新版本的cordova-android对高版本Java的兼容性更好。
清理Gradle缓存与Daemon
执行以下命令清除旧缓存和无效Daemon,避免干扰:rm -rf ~/.gradle/caches ./platforms/android/tools/gradlew --stop之后重新运行
cordova build android。强制Gradle指定Java版本
在platforms/android/gradle.properties文件中添加以下配置,强制Gradle使用兼容的Java版本:org.gradle.java.home=/你的Java21安装路径替换路径为你实际的Java 21安装目录。
内容的提问来源于stack exchange,提问作者vivann
相关产品推荐
相关产品推荐

