Quasar执行capacitor安卓构建时报Groovy类初始化失败错误
问题描述
使用Quasar框架结合Android Studio开发Capacitor平台安卓端项目时,执行以下命令初始化项目:
quasar build -m capacitor -T android quasar dev -m capacitor -T android
执行第一条构建命令时触发构建失败,错误日志如下:
FAILURE: Build failed with an exception. * What went wrong: Could not initialize class org.codehaus.groovy.reflection.ReflectionCache > Exception java.lang.NoClassDefFoundError: Could not initialize class org.codehaus.groovy.vmplugin.v7.Java7 [in thread "Daemon worker"] * 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 4s
报错原因
核心原因是项目使用的Gradle版本与本地JDK版本不兼容:旧版本Gradle内置的Groovy运行组件不支持高版本JDK(JDK 16及以上),导致Groovy相关核心类加载失败,触发类未定义错误。Quasar + Capacitor生成的默认安卓项目如果绑定了过低版本的Gradle Wrapper,搭配本地安装的高版本JDK时就会出现该问题。
修复方案
- 匹配JDK版本适配当前Gradle
打开项目路径下src-capacitor/android/gradle/wrapper/gradle-wrapper.properties文件,确认当前使用的Gradle版本,按照官方兼容规则选择对应JDK版本:Gradle 6.x最高支持JDK 14,Gradle 7.x支持JDK 11~16,Gradle 8.x支持JDK 11~21。在Android Studio中打开File > Settings > Build, Execution, Deployment > Build Tools > Gradle,将Gradle JDK修改为对应兼容版本后重新构建即可。 - 升级Gradle版本适配本地高版本JDK
如果本地已经安装JDK 17/21等长期支持版本,直接修改gradle-wrapper.properties中的distributionUrl配置,将Gradle版本升级到8.x以上,同时同步升级安卓项目根目录build.gradle中的Android Gradle插件(AGP)版本到匹配区间(AGP 8.x对应Gradle 8.x)。 - 升级前端依赖修复默认配置
执行npm outdated检查本地@quasar/app、@capacitor/android依赖版本,升级到最新稳定版后,删除原有src-capacitor/android目录,重新执行quasar dev -m capacitor -T android,会自动生成适配高版本JDK的安卓项目配置。
内容的提问来源于stack exchange,提问作者facundo benedetto
相关产品推荐
相关产品推荐

