如何在Visual Studio 2017中使用更新版本的Cordova插件
解决Ionic 1.3/Cordova项目中cordova-android版本不匹配及应用崩溃问题
我来帮你一步步梳理解决思路,搞定这些问题:
一、先解决cordova-android版本拉取异常的问题
你全局装了Cordova 8.0.0,但执行cordova platform add android还是拉取5.2.1,大概率是项目本地残留了旧配置或者config.xml里锁定了版本。按下面的步骤来:
彻底清理项目旧依赖
- 先卸载当前的Android平台:
cordova platform remove android - 删除项目根目录下的
platforms、plugins、node_modules文件夹(这一步能清除所有旧的缓存和依赖,避免干扰新配置) - 顺便执行
cordova clean清除Cordova的构建缓存
- 先卸载当前的Android平台:
修正config.xml的版本配置
- 打开config.xml,检查是否有
<engine name="android" spec="5.2.1" />的条目,如果有,把spec改成>=6.3.0(或者你想指定的具体版本,比如6.3.0,Ionic 1.3兼容这个版本及更高的部分版本,别选太新的比如10+,容易不兼容) - 你的相机插件当前是
<plugin name="cordova-plugin-camera" spec="~2.4.1" />,这个版本只支持旧版cordova-android,所以之后要换成支持6.3.0+的版本,比如把spec改成^3.0.0(3.x系列开始要求cordova-android>=6.3.0)
- 打开config.xml,检查是否有
重新安装指定版本的Android平台
- 执行
cordova platform add android@6.3.0(指定版本安装,避免自动拉取旧版本),这样就能拉取符合相机插件要求的平台版本了
- 执行
重新安装兼容的插件
- 安装相机插件:
cordova plugin add cordova-plugin-camera@3.0.0(选3.x或更高的兼容版本,确保和cordova-android 6.3.0匹配) - 再安装File插件:
cordova plugin add cordova-plugin-file@6.0.0(同样选适配cordova-android 6.3.0的版本) - 安装完成后,检查config.xml里的插件条目是否自动更新到了对应的版本
- 安装相机插件:
二、解决Android设备间歇性崩溃问题
之前的崩溃大概率是旧版插件和旧cordova-android的兼容性问题,做完上面的步骤后:
- 执行
ionic build android或者cordova build android重新编译项目 - 在Android设备上测试,看崩溃是否消失
- 如果还是有问题,用
adb logcat查看崩溃日志,定位具体原因(比如权限配置、插件调用方式是否适配新版插件——Ionic 1.3的navigator.camera.getPicture调用参数可能需要微调,比如新版插件的权限请求逻辑有变化)
三、关于回退到Visual Studio 6.3.1工具集的问题
如果之后需要回退到VS 6.3.1工具集,一定要先备份关键文件,不能直接切换:
- 必须备份的文件/文件夹:
config.xml(平台和插件的核心配置)www文件夹(你的应用源码)package.json和package-lock.json(依赖版本记录)hooks文件夹(自定义构建钩子)
- 回退步骤:
- 先卸载当前的Android平台:
cordova platform remove android - 修改config.xml里的Android引擎版本为VS 6.3.1工具集支持的cordova-android版本(一般是6.3.0左右,你也可以直接通过VS打开项目,让VS自动拉取对应版本的平台)
- 再通过VS重新安装兼容的插件版本,或者手动执行
cordova plugin add命令安装对应版本的插件
- 先卸载当前的Android平台:
直接切换很容易因为依赖版本不匹配导致各种问题,备份后再操作更稳妥。
内容的提问来源于stack exchange,提问作者Colin
相关产品推荐
相关产品推荐

