Flutter Web项目中file_picker_cross包出现NullThrownError方法未找到错误
Flutter Web项目中file_picker_cross包报错:NullThrownError方法未找到
报错信息
/C:/Users/ROSE%20PC/AppData/Local/Pub/Cache/hosted/pub.dev/file_picker_cross-4.6.0/lib/file_picker_cross.dart:136:14: Error: Method not found: 'NullThrownError'. throw (NullThrownError()); ^^^^^^^^^^^^^^^
已尝试的无效解决步骤
- 执行
flutter pub upgrade file_picker_cross更新包至最新版本 - 执行
flutter clean清理项目后重新运行flutter pub get
补充环境信息
- Flutter版本:3.10.1
- file_picker_cross包版本:4.6.0
可行解决方案
1. 临时修改包源码修复
找到报错提示中的file_picker_cross.dart文件(路径:C:/Users/ROSE PC/AppData/Local/Pub/Cache/hosted/pub.dev/file_picker_cross-4.6.0/lib/file_picker_cross.dart),定位到第136行,将代码:
throw (NullThrownError());
替换为以下任意一种写法:
throw Null(); // 或者更直观的错误提示 throw '空值异常:未获取到文件';
保存修改后重新运行项目即可。
2. 替换为更稳定的官方包
file_picker_cross包维护不活跃,建议替换为官方维护的file_picker包,对Flutter Web支持更完善:
- 在
pubspec.yaml中移除file_picker_cross依赖,添加:dependencies: file_picker: ^6.1.1 # 替换为最新版本号 - 执行
flutter pub get安装依赖 - 重构代码适配新包API,示例:
// 原file_picker_cross写法 // FilePickerCross file = await FilePickerCross.pick(); // 替换为file_picker写法 FilePickerResult? result = await FilePicker.platform.pickFiles(); if (result != null) { PlatformFile file = result.files.first; // 后续业务逻辑 }
内容的提问来源于stack exchange,提问作者pedram lohery
相关产品推荐
相关产品推荐

