【发布时间】:2021-01-11 10:37:43
【问题描述】:
在我的 Flutter 应用程序的 iOS 变体中,当我使用显式创建 .jpg 文件时
File(path.join(filePath, fileName))
..createSync(recursive: true)
..writeAsBytesSync(buffer);
呈现文件的小部件(通过调用 Image.file(),将文件作为参数传递给它)会产生空白图像。
没有抛出异常,表明文件未找到或文件内容无效。它表现得好像文件是空白的,但是当我使用 Finder 浏览到文件时,文件就在那里,当我单击图像时,预览会呈现预期的图像。
当图像来自设备相机或设备图库时执行相同的代码时,它可以工作,而当在 Android 变体中执行相同的代码并显式创建文件时,它也可以工作。
我唯一能想到的是它与在我的 iOS 模拟器目录结构深处创建图像有关
ie-/Users/joselitope/Library/Developer/CoreSimulator/Devices/F2AE8082-E670-498B-B2C6-9A83BE1855A4/data/Containers/Data/Application/7B01A347-69AE-4A1F-8567-7FCC256013F5/tmp/comp_image_cropper_2CC9EEFB- A126-4811-BD80-485B4C41F3A2-18523-00001C049E5AAE85.jpg
但同样,使用 Finder 可以看到该文件,因此这可能不是原因。
也许我必须在 iOS 中创建文件时设置某些权限,或者在我的 pubspec.yaml 中设置适用于 iOS 的设置?
非常感谢所有帮助。
我的环境如下: 卡特琳娜 10.15.7, Flutter 1.22.5 通道稳定, XCode 12.3, 模拟器:iPhone 12 Pro Max - 14.3,
【问题讨论】: