升级至Android API 33后cordova-plugin-qrscanner编译失败求助
解决Cordova 12 + Android API 33下cordova-plugin-qrscanner编译失败问题
问题原因
cordova-plugin-qrscanner官方版本未适配Android API 33及Cordova 12的构建规则,导致gradle配置冲突、SDK版本不匹配,引发编译失败。
可行解决方案
1. 安装社区适配的分支版本
不少社区fork已针对API 33做了适配,直接安装对应分支即可:
cordova plugin remove cordova-plugin-qrscanner cordova plugin add https://github.com/bitpay/cordova-plugin-qrscanner.git#android-api-33
2. 手动修改插件gradle配置
找到项目中插件的安装目录(通常在plugins/cordova-plugin-qrscanner/src/android下),编辑online_qrscanner.gradle文件:
- 将
compileSdkVersion和targetSdkVersion改为33 - 把过时的
compile依赖声明替换为implementation
修改后的示例配置:
android { compileSdkVersion 33 defaultConfig { targetSdkVersion 33 minSdkVersion 21 versionCode 27 versionName "2.1.0" } } dependencies { implementation 'com.google.zxing:core:3.5.1' implementation 'com.journeyapps:zxing-android-embedded:4.3.0' }
修改完成后执行cordova clean android清理缓存,再重新构建项目。
3. 替换为活跃维护的替代插件
如果上述方法无效,可改用适配新API的扫码插件:
- phonegap-plugin-barcodescanner:维护活跃,支持API 33,安装命令:
cordova plugin remove cordova-plugin-qrscanner cordova plugin add phonegap-plugin-barcodescanner
- cordova-plugin-scanbot-sdk:功能更全面,包含扫码、图像识别等,适配最新Android API。
内容的提问来源于stack exchange,提问作者naxim
相关产品推荐
相关产品推荐

