无法使用 ImagePicker Flutter 分配文件

Posted

技术标签:

【中文标题】无法使用 ImagePicker Flutter 分配文件【英文标题】:File cant be assigned with ImagePicker Flutter 【发布时间】:2020-04-20 12:53:47 【问题描述】:

我正在从 https://pub.dev/packages/image_picker 学习图像选择器, 但我不明白为什么我一步步使用这种方式时会出错。

这就是问题所在:

首先,我声明一个文件变量

File _imageFile ;

然后我在一个方法中使用它,

_getimg() async
var _img = await ImagePicker(source: ImageSource.gallery);
setState(() 
      _imageFile = _img ;
    );

然后我得到了这个错误:

'File 类型的值(其中 File 定义在 D:\Flutter\flutter\bin\cache\pkg\sky_engine\lib\io\file.dart)' 不能 分配给类型为“文件”的变量(其中文件定义在 D:\Flutter\flutter\bin\cache\pkg\sky_engine\lib\html\html_dart2js.dart)'。

【问题讨论】:

【参考方案1】:

文件声明之间存在冲突。 html 包有一个类 File 的声明,io 包有另一个声明(同名,不同来源)。

事实上,html 用于 Web,io 用于控制台、服务器或移动应用程序,因此请检查您的导入并删除 iohtml,具体取决于您正在处理的项目类型.

另一种解决方案是像这样定义您的导入:

import 'package:html/html.dart' as h; //"h" can change, is just an example
import 'dart:io' as i; //"i" also can be another char or word, is just an example

//And when you need to create a File,
//you can decide if you want to create
//an io File or an html File

main()
    i.File f1 = ...; //The io File, starting with "i."
    h.File f2 = ...; //The html File, starting with "h."


【讨论】:

当我想为imagepicker声明文件时,我必须使用哪个,io或html? io 文件。 image_picker 仅适用于移动设备,因此请继续使用 :-)

以上是关于无法使用 ImagePicker Flutter 分配文件的主要内容,如果未能解决你的问题,请参考以下文章

Flutter imagepicker.pickvideo 返回 jpg

Flutter ImagePicker 错误“找不到属性 android:requestLegacyExternalStorage”

Flutter Resize ImagePicker Image 在上传到firebase之前

Flutter学习日记之使用ImagePicker实现选择媒体文件/拍摄以及文件上传

Flutter学习日记之使用ImagePicker实现选择媒体文件/拍摄以及文件上传

Flutter学习日记之使用ImagePicker实现选择媒体文件/拍摄以及文件上传