我有一个Flutter项目,试图将MLKit用作文本OCR。 我创建了一个独立的Flutter项目,该项目可以与MLKit一起正常工作。但是,当我将相同的代码和依赖项放入现有的Flutter项目中时,它无法按预期工作。
以下是我在尝试选择图片时遇到的问题...
当我单击图库以选择图像时,它将引发异常。
最终文件=等待ImagePicker.pickImage(来源:imageSource); 如果(文件==空){ 抛出异常(“文件不可用”); }
当我尝试选择相机时,它第一次请求权限,然后应用程序关闭。...抛出“ java.lang.NullPointerException:尝试调用虚拟方法'android。在空对象引用上的content.res.XmlResourceParser android.content.pm.ProviderInfo.loadXmlMetaData(android.content.pm.PackageManager,java.lang.String)'“
在随后的所有尝试中抛出这些异常后,将引发异常“ PlatformException(已激活,图像选择器已处于活动状态,为null)”
cupertino_icons:^ 0.1.2 firebase_auth:^ 0.8.0 + 1 cloud_firestore:^ 0.9.0 firebase_core:^ 0.3.0 国际翻译:^ 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 路径提供者:^ 0.5.0 + 1 image_picker:^ 0.5.0 + 3
谢谢
答案 0 :(得分:2)
使用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');
}
答案 1 :(得分:2)
您需要删除项目中的build
文件夹。完成后,再次启动项目,它将起作用。
答案 2 :(得分:2)
尝试清理您的应用程序,使用Flutter clean
命令。
很多时候,我都遇到过此类问题,其中没有与代码相关的问题,但还是出了一些问题,但是以某种方式Flutter clean
可以帮助解决该问题。
答案 3 :(得分:0)
首先,问题可能出在权限上,您需要添加permission_handler才能访问摄像头或存储设备等硬件。
除了我们手机中的默认应用程序之外,第二次尝试其他相机应用程序。