Flutter 颤振拾取图像照相机或画廊异常

Flutter 颤振拾取图像照相机或画廊异常,flutter,firebase-mlkit,Flutter,Firebase Mlkit,我有一个Flutter项目,我正在尝试将MLKit用于文本OCR。 我已经板条箱一个独立的颤振项目的工作与MLKit的罚款。然而,当我将相同的代码和依赖项添加到现有的颤振项目中时,它并没有像预期的那样工作 下面是我在选择图片时遇到的问题 当我点击图库选择图像时,它抛出异常 最终文件=等待ImagePicker.pickImage(源:imageSource); if(file==null){ 抛出异常(“文件不可用”); } 当我尝试选择相机时,它第一次请求许可,然后应用程序关闭。。。。在空对象

我有一个Flutter项目,我正在尝试将MLKit用于文本OCR。 我已经板条箱一个独立的颤振项目的工作与MLKit的罚款。然而,当我将相同的代码和依赖项添加到现有的颤振项目中时,它并没有像预期的那样工作

下面是我在选择图片时遇到的问题

  • 当我点击图库选择图像时,它抛出异常

    最终文件=等待ImagePicker.pickImage(源:imageSource); if(file==null){ 抛出异常(“文件不可用”); }

  • 当我尝试选择相机时,它第一次请求许可,然后应用程序关闭。。。。在空对象引用上抛出“java.lang.NullPointerException:尝试调用虚拟方法”android.content.res.XmlResourceParser android.content.pm.ProviderInfo.loadXmlMetaData(android.content.pm.PackageManager,java.lang.String)

  • 一旦这些异常在以后的每次尝试中抛出,它就会抛出异常“PlatformException(已经处于活动状态,图像选择器已经处于活动状态,为空)

    cupertino_图标:^0.1.2 firebase_认证:^0.8.0+1 云存储:^0.9.0 firebase_核心:^0.3.0 国际翻译:^0.17.2 firebase_消息:^3.0.0 http:^0.12.0+1 xml:^3.3.1 firebase_存储:^2.0.0 uuid:^1.0.3 共享首选项:^0.5.0 颤振交错网格视图:^0.2.7 谷歌登录:^4.0.0 颤振登录按钮:^0.2.5 mlkit:^0.9.0 路径提供程序:^0.5.0+1 图像选取器:^0.5.0+3

  • 为了实现MLKit,我遵循了下面的博客

    谢谢你使用插件


    您需要删除项目中的
    build
    文件夹。一旦你这样做并再次启动你的项目,它就会工作。

    尝试清理你的应用程序,使用
    flatterclean
    命令


    很多时候,我都遇到过这样的问题,没有与代码相关的问题,但仍然出现了一些问题,但不知何故,
    flatter clean
    往往有助于解决问题。

    首先,问题可能是权限问题,您需要添加权限来访问摄像头或存储器等硬件


    其次,请尝试其他摄像头应用程序,而不是手机中的默认应用程序。

    非常感谢您的时间和帮助。我只使用这个插件。
    var imageSource;
    if (source == CAMERA_SOURCE) {
      imageSource = ImageSource.camera;
    } else {
      imageSource = ImageSource.gallery;
    }
    
    try {
      final file = await ImagePicker.pickImage(source: imageSource);
      if (file == null) {
        throw Exception('File is not available');
      }