Ionic+Cordova Android 10构建报compileDebugJavaWithJavac错误找不到Whitelist类
问题根因
Cordova Android 10.0.0及以上版本重构了白名单相关逻辑,删除了原有的org.apache.cordova.Whitelist类,替换为org.apache.cordova.AllowList类。你当前项目使用的cordova-plugin-filetransfer版本过低,未适配Cordova Android 10+的API变更,因此编译时找不到对应类触发报错。
解决方案
方案一(推荐):替换废弃插件
cordova-plugin-filetransfer已被官方标记为废弃,不再维护,优先使用前端原生API替代:
- 小文件传输直接使用
Fetch API或XMLHttpRequest实现上传/下载逻辑,无需依赖原生插件 - 若必须用原生插件实现大文件传输,可选择社区维护的替代插件如
cordova-plugin-advanced-http,该插件已适配最新Cordova Android版本
方案二:继续使用file-transfer插件
- 卸载原有旧版本插件:
cordova plugin rm cordova-plugin-file-transfer - 安装适配了Cordova Android 10+的社区维护版本:
cordova plugin add https://github.com/globules-io/cordova-plugin-file-transfer.git - 清除旧平台缓存,重新添加Android平台:
cordova platform rm android cordova platform add android@10.0.0
- 重新执行构建命令即可。
临时应急方案
如果仅需要临时编译验证,可以直接修改报错的源码文件:
找到platforms\android\app\src\main\java\org\apache\cordova\filetransfer\FileTransfer.java:
- 将第59行的
import org.apache.cordova.Whitelist;替换为import org.apache.cordova.AllowList; - 将第769行的所有
Whitelist关键字替换为AllowList
该方案仅为临时修改,重新添加Android平台后改动会丢失,不建议长期使用。
内容的提问来源于stack exchange,提问作者Krishna
相关产品推荐
相关产品推荐

