Reactjs+Capacitor扫码插件编译报错:JVM目标版本不一致求助
问题:Capacitor扫码插件移动端编译JVM版本不一致错误
在ReactJS项目中使用@capacitor/barcode-scanner插件时,Web版本运行正常,但移动端编译时报错:
执行任务':capacitor-barcode-scanner:compileDebugKotlin'失败,检测到任务'compileDebugJavaWithJavac'(JDK17)与'compileDebugKotlin'(JDK21)的JVM目标版本不一致。
已尝试的解决措施
- 修改capacitor.build.gradle中的Java版本,但同步后会自动恢复原状
- 同时安装JDK17和JDK21进行测试,问题仍未解决
- 尝试过Stack Overflow上的多个同类解决方案
编辑补充
目前尚未找到该问题的解决方案,已将扫码方案从@capacitor/barcode-scanner替换为html5-qrcode npm包,功能不受影响且不再出现该错误。若您有解决方案,欢迎分享。
问题解答
这个错误同时涉及插件和Android环境:
- 插件层面:
@capacitor/barcode-scanner的Android端配置可能硬编码了JDK21的编译目标,或者其依赖的第三方库使用了更高版本的JVM目标,与项目默认的JDK17环境不兼容。 - 环境层面:Capacitor的Android构建机制存在自动覆盖gradle配置的情况,导致手动修改的Java版本设置无法持久生效;同时本地多JDK版本共存时,环境变量或IDE的JDK配置冲突,也会加剧版本不一致的问题。
内容的提问来源于stack exchange,提问作者nur najihah
相关产品推荐
相关产品推荐

