gpt4 book ai didi

ios - Flutter:在iOS上第二次使用image_picker从图片库中选择照片 'Lost connection to device.'

转载 作者:行者123 更新时间:2023-12-03 11:16:52 25 4
gpt4 key购买 nike

我正在开发一种移动应用程序,需要用户从图库中选择图像。
我正在使用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');
}
}
在android模拟器中,一切正常。在iOS模拟器中,我可以选择一个图像,但是如果我尝试选择第二个图像,则该应用程序将崩溃并“失去与设备的连接”。将在“运行”选项卡中打印-但没有错误。
问题:如何解决此问题,以便可以返回图库并在iOS上根据需要多次选择其他图像?
调试时,我遇到了这个问题:
PlatformException(multiple_request, Cancelled by a second request, null, null)
我遇到了很多类似的问题,在这里可以找到,例如GitHub等...我有:
  • 升级的 flutter
  • 升级的pub文件
  • flutter 打干净
  • 清理并在Xcode中构建
  • 在抖动代码
  • 中添加了'imageCache.clear()'
  • 使缓存无效并在android studio
  • 中重新启动
  • flutter doctor -v:未发现问题
  • 检查权限(info.plist并添加了Permissions_handler包)
  • 重新启动模拟器
  • 删除了模拟器
  • 中的所有内容和设置
    使用断点进行
  • 调试会怪异地阻止该问题发生几次,然后经过几次选择,应用再次崩溃¯\(ツ)/¯

  • 我敢肯定,这是直截了当的,但是我觉得我已经用光了所有的选择,而且不确定从这里走到哪里。

    最佳答案

    您的代码是正确的,并且是模拟器问题,如果您想在IOS上进行测试,则必须在真实的​​iPhone上进行测试,以下是有关如何正确执行的代码段:

    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,
    }
    编辑:
    每当添加依赖于 native 代码的软件包时,都应重新启动整个应用程序构建b停止构建并再次重新启动它,以使 native 代码能够很好地编译,不要忘了重新启动,然后将此软件包放入pubspec.yaml
    希望它会有所帮助,如果此答案对您有所帮助,请不要忘记将其标记为已回答并对其进行投票。

    关于ios - Flutter:在iOS上第二次使用image_picker从图片库中选择照片 'Lost connection to device.',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64207968/

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