gpt4 book ai didi

flutter - 断言失败:854行pos 14: 'file != null':不正确

转载 作者:行者123 更新时间:2023-12-03 04:08:48 25 4
gpt4 key购买 nike

我正在尝试使用 FileImage()显示图像,但是它抛出“'file!= null”:不是真的错误。图像来自图像选择器功能。奇怪的是,我知道该文件存在,因为当我尝试打印该文件时,它会向我显示文件的路径。
编辑:如果您需要检查以下代码,请参见以下链接:
https://github.com/MBanawa/ecommerce_app/blob/master/lib/Admin/uploadItems.dart
以下是具有打印方法的ImagePicker的功能:

File imageFile;    
pickImage(ImageSource imageSource) async {
Navigator.pop(context);
final pickedFile = await ImagePicker().getImage(source: imageSource);
setState(() {
imageFile = File(pickedFile.path);
print('Path $imageFile');
});
}
我通过相机或图库在 onPressed()中触发该函数:
相机:
onPressed: () => pickImage(ImageSource.camera),
画廊
onPressed: () => pickImage(ImageSource.gallery),
以下是我如何调用imageFile:
Container(
height: 230.0,
width: MediaQuery.of(context).size.width * 0.8,
child: Center(
child: AspectRatio(
aspectRatio: 16 / 9,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(
image: FileImage(imageFile),
fit: BoxFit.cover,
),
),
),
),
),
),
上面的容器在一个名为 displayAdminUploadFormScreen()的函数内部,如果imageFile不为null,则该函数将被调用。我将其放在statefulwidget状态的build方法之后:
@override
Widget build(BuildContext context) {
return imageFile == null
? displayAdminHomeScreen()
: displayAdminUploadFormScreen();
}
我感到困惑的是,print()在拍照后返回了实际的链接。这是使用相机拍照时的示例结果:
I/flutter (16227): Path File: '/storage/emulated/0/Android/data/com.example.ecommerceapp/files/Pictures/068e58d6-88af-4b13-9453-c8c8d836083c5388058709499582194.jpg'
确切的错误信息是:
The following assertion was thrown building UploadPage(dirty, dependencies: 
[MediaQuery, _InheritedTheme, _LocalizationsScope-[GlobalKey#71a32]], state: _UploadPageState#0a649):

'package:flutter/src/painting/image_provider.dart': Failed assertion: line 854 pos 14: 'file !=
null': is not true.
在检查该错误给出的链接时,它指向 FileImage(imageFile)。如果我打开FileImage,则第854行pos 14是一个断言:
const FileImage(this.file, { this.scale = 1.0 })
: assert(file != null),
assert(scale != null);
我还尝试了创建ImagePicker函数的传统方法。 (pub.dev中的那个),但仍显示相同的错误。任何指导将不胜感激。谢谢!

最佳答案

这是因为您正在clearFormInfo()小部件中调用IconButton函数。我相信您想在回调onPressed属性内调用此函数。
所以代替:

leading: IconButton(
icon: Icon(
Icons.arrow_back,
color: Colors.white,
),
onPressed: clearFormInfo(),
)
请用:
leading: IconButton(
icon: Icon(
Icons.arrow_back,
color: Colors.white,
),
onPressed: () {
clearFormInfo();
},
),

关于flutter - 断言失败:854行pos 14: 'file != null':不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64663307/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com