Flutter pick image camera 或 gallery 异常
Flutter pick image camera or gallery exception
我有一个 Flutter 项目,我正在尝试将 MLKit 用于文本 OCR。
我创建了一个独立的 Flutter 项目,它可以很好地与 MLKit 配合使用。但是,当我将相同的代码和依赖项放入我现有的 Flutter 项目时,它没有按预期工作。
以下是我在尝试选择图像时遇到的问题...
当我点击图库选择图片时抛出异常。
最终文件 = 等待 ImagePicker.pickImage(来源:imageSource);
如果(文件==空){
抛出异常('File is not available');
}
当我尝试选择相机时,它第一次请求许可,然后应用程序关闭....抛出“java.lang.NullPointerException:尝试在空对象引用 "
上调用虚方法 'android.content.res.XmlResourceParser android.content.pm.ProviderInfo.loadXmlMetaData(android.content.pm.PackageManager, java.lang.String)'
一旦这些异常抛出,每次后续尝试都会抛出异常“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.
中尝试默认应用程序以外的其他相机应用程序
我有一个 Flutter 项目,我正在尝试将 MLKit 用于文本 OCR。 我创建了一个独立的 Flutter 项目,它可以很好地与 MLKit 配合使用。但是,当我将相同的代码和依赖项放入我现有的 Flutter 项目时,它没有按预期工作。
以下是我在尝试选择图像时遇到的问题...
当我点击图库选择图片时抛出异常。
最终文件 = 等待 ImagePicker.pickImage(来源:imageSource); 如果(文件==空){ 抛出异常('File is not available'); }
当我尝试选择相机时,它第一次请求许可,然后应用程序关闭....抛出“java.lang.NullPointerException:尝试在空对象引用 "
上调用虚方法 'android.content.res.XmlResourceParser android.content.pm.ProviderInfo.loadXmlMetaData(android.content.pm.PackageManager, java.lang.String)'
一旦这些异常抛出,每次后续尝试都会抛出异常“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.
中尝试默认应用程序以外的其他相机应用程序