You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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环境:

  1. 插件层面:@capacitor/barcode-scanner的Android端配置可能硬编码了JDK21的编译目标,或者其依赖的第三方库使用了更高版本的JVM目标,与项目默认的JDK17环境不兼容。
  2. 环境层面:Capacitor的Android构建机制存在自动覆盖gradle配置的情况,导致手动修改的Java版本设置无法持久生效;同时本地多JDK版本共存时,环境变量或IDE的JDK配置冲突,也会加剧版本不一致的问题。

内容的提问来源于stack exchange,提问作者nur najihah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 01:14:56