在Flutter中关闭相机后出现白屏/黑屏

时间:2020-01-05 10:53:44

标签: flutter flutter-dependencies

我有一个小部件可以像这样在我的应用上拍照:

final File imageFile =
        await ImagePicker.pickImage(source: ImageSource.camera).then((test) {
      print('TEST $test');
      return test;
    });

我可以打开相机而没有任何错误,也可以拍照,但是当我尝试返回或接受照片时,我的应用程序显示白屏,而控制台完全没有错误。

这在真实设备(小米Redmi Note 8t)上失败了,但在Android Emulator上可以使用。

当我拿相机时,我唯一看到的消息是Lost connection to device.

2 个答案:

答案 0 :(得分:2)

修复了添加try catch的问题:

Future<Null> _pickImageFromCamera(BuildContext context, int index) async {
    File imageFile;
    try {
      imageFile = await ImagePicker.pickImage(source: ImageSource.camera)
      .then((picture) {
        return picture; // I found this .then necessary
      });
    } catch (eror) {
      print('error taking picture ${error.toString()}');
    }
    setState(() => this._imageFile = imageFile);
  }

答案 1 :(得分:0)

我找到了 flutter 2 的解决方案

在安卓中

您需要将此添加到您的 3 清单(调试、主要、配置文件)

<uses-permission android:name="android.permission.CAMERA" />
 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 

然后用 try catch 选择图像,就像这样

Future getbehind() async {
    try{
      final pickedFile = await picker.getImage(source: (ImageSource.camera:ImageSource.gallery),)
          .then((value) {
        setState(() {
          if (value != null) {
            behind = File(value.path);
          } else {
            print('No image selected.');
          }
        });
      });


    }catch(e){

    }

在发布模式下运行应用程序就完成了!