未处理的异常:类型 'XFile' 不是类型转换中类型 'PickedFile' 的子类型
Unhandled Exception: type 'XFile' is not a subtype of type 'PickedFile' in type cast
我正在尝试让用户能够在应用程序中更改他们的个人资料照片。
我能够拉动相机并在颤抖中拍照。但是,图像没有被保存,并且在 visual studio 代码中我
得到以下错误:[ERROR:flutter/lib/ui/ui_dart_state.cc(209)] 未处理的异常:类型 'XFile' 不是类型 cast
中类型 'PickedFile' 的子类型
以下是我使用的变量:
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.
你可以尝试更改 PickedFile
-> XFile
吗?因为你使用的是新版本。现在他们使用 XFile
而不是 PickedFile
。
https://github.com/flutter/plugins/blob/55e246bfa0fd43ff16dc0041084449e606d0fb3c/packages/image_picker/image_picker/lib/image_picker.dart#L203
如果您想继续使用 PickedFile
让我们更改为 getImage
将您的声明更改为:
XFile _imageFile;
而不是pickedfile。并删除 as PickedFile
中的大小写
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。
我正在尝试让用户能够在应用程序中更改他们的个人资料照片。 我能够拉动相机并在颤抖中拍照。但是,图像没有被保存,并且在 visual studio 代码中我 得到以下错误:[ERROR:flutter/lib/ui/ui_dart_state.cc(209)] 未处理的异常:类型 'XFile' 不是类型 cast
中类型 'PickedFile' 的子类型以下是我使用的变量:
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.
你可以尝试更改 PickedFile
-> XFile
吗?因为你使用的是新版本。现在他们使用 XFile
而不是 PickedFile
。
https://github.com/flutter/plugins/blob/55e246bfa0fd43ff16dc0041084449e606d0fb3c/packages/image_picker/image_picker/lib/image_picker.dart#L203
如果您想继续使用 PickedFile
让我们更改为 getImage
将您的声明更改为:
XFile _imageFile;
而不是pickedfile。并删除 as PickedFile
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。