Flutter pick image camera 或 gallery 异常

Flutter pick image camera or gallery exception

我有一个 Flutter 项目,我正在尝试将 MLKit 用于文本 OCR。 我创建了一个独立的 Flutter 项目,它可以很好地与 MLKit 配合使用。但是,当我将相同的代码和依赖项放入我现有的 Flutter 项目时,它没有按预期工作。

以下是我在尝试选择图像时遇到的问题...

  1. 当我点击图库选择图片时抛出异常。

    最终文件 = 等待 ImagePicker.pickImage(来源:imageSource); 如果(文件==空){ 抛出异常('File is not available'); }

  2. 当我尝试选择相机​​时,它第一次请求许可,然后应用程序关闭....抛出“java.lang.NullPointerException:尝试在空对象引用 "

  3. 上调用虚方法 'android.content.res.XmlResourceParser android.content.pm.ProviderInfo.loadXmlMetaData(android.content.pm.PackageManager, java.lang.String)'
  4. 一旦这些异常抛出,每次后续尝试都会抛出异常“PlatformException(already_active,图像选择器已经激活,null)

    cupertino_icons:^0.1.2 firebase_auth: ^0.8.0+1 cloud_firestore: ^0.9.0 firebase_core: ^0.3.0 intl_translation:^0.17.2 firebase_messaging: ^3.0.0 HTTP: ^0.12.0+1 xml: ^3.3.1 firebase_storage: ^2.0.0 uuid: ^1.0.3 shared_preferences: ^0.5.0 flutter_staggered_grid_view: ^0.2.7 google_sign_in: ^4.0.0 flutter_signin_button: ^0.2.5 mlkit: ^0.9.0 path_provider: ^0.5.0+1 image_picker: ^0.5.0+3

为了实现 MLKit,我关注了下面的博客https://medium.com/flutter-community/flutter-text-barcode-scanner-app-with-firebase-ml-kit-103db6b6dad7

谢谢

使用image_picker插件

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');
  }

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

尝试清理您的应用程序,使用 Flutter clean 命令。

很多次我遇到过这种问题,没有与代码相关的问题,但仍然出现问题,但不知何故 Flutter clean 往往有助于解决问题。

首先,问题可能出在权限上,您需要添加 permission_handler 才能访问相机或存储等硬件。

其次在我们的 phone.

中尝试默认应用程序以外的其他相机应用程序