未处理的异常:类型“XFile”不是类型转换中“PickedFile”类型的子类型
Posted
技术标签:
【中文标题】未处理的异常:类型“XFile”不是类型转换中“PickedFile”类型的子类型【英文标题】:Unhandled Exception: type 'XFile' is not a subtype of type 'PickedFile' in type cast 【发布时间】:2021-12-31 05:13:29 【问题描述】:我正在尝试让用户能够在应用内更改他们的个人资料图片。 我可以拉起相机拍张照片。但是,图像没有被保存,在 Visual Studio 代码中我 收到以下错误:[ERROR:flutter/lib/ui/ui_dart_state.cc(209)]
这是我正在使用的变量:
PickedFile? _imageFile;
final ImagePicker _picker = ImagePicker();
这里是它们被使用的功能:
void takePhoto(ImageSource source) async
final pickedFile = await _picker.pickImage(source: source);
setState(()
_imageFile = pickedFile as PickedFile;
);
另外,我正在使用最新版本的图像选择器,即 image_picker: ^0.8.4+4。
【问题讨论】:
【参考方案1】: final ImagePicker _picker = ImagePicker();
Future<File?> takePhoto(ImageSource source) async
final XFile? image = await _picker.pickImage(source: source);
final File? file = File(image!.path);
return file;
问题在于最初使用将其声明为 PickedFile。
【讨论】:
【参考方案2】:将您的声明更改为:
XFile _imageFile;
而不是pickfile。并删除as PickedFile
中的案例
【讨论】:
【参考方案3】:您可以尝试更改 PickedFile
-> XFile
吗?因为您使用的是新版本。现在他们使用XFile
而不是PickedFile
。
https://github.com/flutter/plugins/blob/55e246bfa0fd43ff16dc0041084449e606d0fb3c/packages/image_picker/image_picker/lib/image_picker.dart#L203
如果您想继续使用PickedFile
,请更改为getImage
【讨论】:
以上是关于未处理的异常:类型“XFile”不是类型转换中“PickedFile”类型的子类型的主要内容,如果未能解决你的问题,请参考以下文章
未处理的异常:类型“bool”不是类型转换中“String”类型的子类型
未处理的异常:类型“int”不是类型转换中“List<int>”类型的子类型
Flutter 未处理的异常:类型“Null”不是类型转换中“List<dynamic>”类型的子类型
未处理的异常:类型“List<Widget>”不是类型转换中“Iterable<MyWidget>”类型的子类型
未处理的异常:类型“ImmutableMap<String, dynamic>”不是类型转换中“List<dynamic>”类型的子类型
Flutter [错误:flutter/lib/ui/ui_dart_state.cc(177)] 未处理的异常:类型“int”不是类型转换中“String”类型的子类型