颤振:“失去与设备的连接。”第二次使用 image_picker 从 iOS 上的图库中选择照片
Posted
技术标签:
【中文标题】颤振:“失去与设备的连接。”第二次使用 image_picker 从 iOS 上的图库中选择照片【英文标题】:Flutter: 'Lost connection to device.' second time using image_picker to select photo from gallery on iOS 【发布时间】:2021-01-20 06:44:05 【问题描述】:我正在开发一个需要用户从图库中选择图像的移动应用程序。
我正在使用 image_picker:^0.6.7+11,这是我的代码:
if (await Permission.photos.request().isGranted)
try
final image =
await ImagePicker().getImage(source: ImageSource.gallery);
if (image != null)
photo.clearData();
File _image = File(image.path);
photo.addOriginal(_image);
else
print('no image selected');
on PlatformException catch (e)
print('Platform exception $e');
catch (e)
print('Unknown error: $e');
在安卓模拟器中,一切正常。在 ios 模拟器中,我可以选择一张图片,但如果我尝试选择第二张图片,则应用程序崩溃并“与设备失去连接”。在运行选项卡中打印 - 但没有错误。
问题:如何解决此问题,以便我可以返回图库并在 iOS 上多次选择不同的图像?
在调试时我遇到了这个:
PlatformException(multiple_request, Cancelled by a second request, null, null)
我已经在这里找到了尽可能多的类似问题,GitHub 等...我有:
升级的颤振 升级的 pub 文件 扑干净 在 Xcode 中清理和构建 在颤振代码中添加了“imageCache.clear()” 在 android studio 中使缓存失效并重新启动 flutter doctor -v:未发现问题 检查了权限(info.plist 并添加了 permission_handler 包) 重启模拟器 已删除模拟器中的所有内容和设置 使用断点进行调试会奇怪地阻止问题发生几次,然后在几次选择后应用再次崩溃¯\(ツ)/¯我确信它是直截了当的,但我觉得我已经用尽了所有的选择,不知道从这里去哪里。
【问题讨论】:
我也有同样的问题,请问有解决办法吗? 这似乎是 iOS 14 模拟器中的一个错误......我让它在我的物理设备上运行没有任何问题 (13.3.1) 非常感谢。我试试看 同样的问题。热重载后,它再次为一张图像工作正常。 @goh 你有没有设法得到这个?对我来说得到完全相同的行为。 【参考方案1】:你的代码是正确的,这是一个模拟器问题,如果你想在 IOS 上测试它,你必须在一个真正的 iPhone 上测试,这里有一个关于你如何正确执行的 sn-p:
final imagePicker = ImagePicker();
PickedFile pickedFile;
if (fileType == FileType.Camera)
// Camera Part
pickedFile = await imagePicker.getImage(
source: ImageSource.camera,
maxWidth: 480,
maxHeight: 640,
imageQuality: 25, // pick your desired quality
);
setState(()
if (pickedFile != null)
_storedFile = File(pickedFile.path);
else
print('No image selected.');
return;
);
else if (fileType == FileType.Gallery)
// Gallery Part
pickedFile = await imagePicker.getImage(
source: ImageSource.gallery,
maxWidth: 480,
maxHeight: 640,
imageQuality: 25,
);
else
print('No image selected.');
return;
);
并且当用户选择他想要获取图像的方式时不要忘记枚举:
enum FileType
Gallery,
Camera,
Video,
编辑: 每当您添加依赖于本机代码的包时,您应该重新启动整个应用程序构建 b 停止构建并再次重新启动它,以便本机代码编译良好,不要忘记在将此包放入您的 pubspec.yaml 之前重新启动
希望对您有所帮助,如果此答案对您有所帮助,请不要忘记标记为已回答并点赞。
【讨论】:
以上是关于颤振:“失去与设备的连接。”第二次使用 image_picker 从 iOS 上的图库中选择照片的主要内容,如果未能解决你的问题,请参考以下文章
图像控制 ActualWidth 仅在第二次加载后才正确 - Image Cropper