Android 10不支持cordova-plugin-whitelist致file transfer插件编译报错求解
问题根因
cordova-android 10.0及以上版本已将白名单能力内置到核心框架中,官方正式废弃了独立的cordova-plugin-whitelist插件,直接移除了原有的org.apache.cordova.Whitelist类。你当前使用的cordova-plugin-file-transfer版本仍依赖已被移除的白名单类,因此编译时会抛出找不到符号的错误。
解决方案
按优先级从高到低选择即可:
- 方案1:替换废弃的file-transfer插件(最推荐)
官方已停止维护cordova-plugin-file-transfer插件,建议直接改用浏览器原生的Fetch API或XMLHttpRequest实现文件上传、下载逻辑,从根本上解决版本兼容问题,后续也不会存在插件迭代风险。 - 方案2:升级file-transfer插件到适配版本
如果不想改动现有业务代码,可以直接升级插件到适配cordova-android 10+的版本,执行以下命令即可:
// 先卸载旧版本插件 ionic cordova plugin remove cordova-plugin-file-transfer // 安装最新适配版 ionic cordova plugin add cordova-plugin-file-transfer@latest
操作完成后删除项目根目录下的platforms、plugins文件夹,重新执行添加安卓平台、编译命令即可。
- 方案3:临时降级cordova-android版本
如果以上方案都无法落地,可以临时将安卓平台版本降级到9.x,避开白名单插件兼容问题,执行命令如下:
ionic cordova platform remove android ionic cordova platform add android@9.1.0
该方案仅适合临时使用,长期不推荐,旧版本cordova-android存在较多安全漏洞和新系统兼容问题。
内容的提问来源于stack exchange,提问作者BASSI Yassine
相关产品推荐
相关产品推荐

