未处理的异常:类型 '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 而不是 PickedFilehttps://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。