我想创建一个文本ocr应用程序,并且使用了flutter和firebase ml视觉。
我想阅读本文时遇到一个异常(exception)。
我已将我的应用迁移到androidx,并检查了Firebase和Gradle版本。
我可以构建该应用程序而没有任何Gradle问题,并且该应用程序也可以启动。
但是如上所述,问题在阅读文字时就开始了。
您可以在下面的代码和错误中看到。
请帮助我,因为我尝试修复了6个多小时。
我的代码:
Future pickImage() async {
File pickedImage = await ImagePicker.pickImage(
source: ImageSource.gallery,
);
setState(() {
fileImage = pickedImage;
isImageLoaded = true;
});
}
Future readText() async {
FirebaseVisionImage ourImage = FirebaseVisionImage.fromFile(fileImage);
TextRecognizer recognizeText = FirebaseVision.instance.textRecognizer();
VisionText readText = await recognizeText.processImage(ourImage);
for (TextBlock block in readText.blocks) {
for (TextLine line in block.lines) {
for (TextElement word in line.elements) {
print(word.text);
}
}
}
}
错误:
[ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: PlatformException(textRecognizerError, Waiting for the text recognition model to be downloaded. Please wait., null)
E/flutter (14595): #0 StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:569:7)
E/flutter (14595): #1 MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:316:33)
E/flutter (14595): <asynchronous suspension>
E/flutter (14595): #2 MethodChannel.invokeMapMethod (package:flutter/src/services/platform_channel.dart:344:48)
E/flutter (14595): <asynchronous suspension>
E/flutter (14595): #3 TextRecognizer.processImage (package:firebase_ml_vision/src/text_recognizer.dart:40:38)
E/flutter (14595): <asynchronous suspension>
E/flutter (14595): #4 _MyHomePageState.readText (package:text_ocr/main.dart:57:47)
E/flutter (14595): <asynchronous suspension>
E/flutter (14595): #5 _MyHomePageState.build.<anonymous closure> (package:text_ocr/main.dart:100:25)
E/flutter (14595): <asynchronous suspension>
E/flutter (14595): #6 _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:654:14)
E/flutter (14595): #7 _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:729:32)
E/flutter (14595): #8 GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:182:24)
E/flutter (14595): #9 TapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:365:11)
E/flutter (14595): #10 TapGestureRecognizer.handlePrimaryPointer (package:flutter/src/gestures/tap.dart:275:7)
E/flutter (14595): #11 PrimaryPointerGestureRecognizer.handleEvent (package:flutter/src/gestures/recognizer.dart:455:9)
E/flutter (14595): #12 PointerRouter._dispatch (package:flutter/src/gestures/pointer_router.dart:75:13)
E/flutter (14595): #13 PointerRouter.route (package:flutter/src/gestures/pointer_router.dart:102:11)
E/flutter (14595): #14 GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:218:19)
E/flutter (14595): #15 GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:198:22)
E/flutter (14595): #16 GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:156:7)
E/flutter (14595): #17 GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:102:7)
E/flutter (14595): #18 GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:86:7)
E/flutter (14595): #19 _rootRunUnary (dart:async/zone.dart:1136:13)
E/flutter (14595): #20 _CustomZone.runUnary (dart:async/zone.dart:1029:19)
E/flutter (14595): #21 _CustomZone.runUnaryGuarded (dart:async/zone.dart:931:7)
E/flutter (14595): #22 _invoke1 (dart:ui/hooks.dart:263:10)
E/flutter (14595): #23 _dispatchPointerDataPacket (dart:ui/hooks.dart:172:5)
E/flutter (14595):
最佳答案
将此添加到您的android / app / AndroidManifest.xml文件中:
<application ...>
...
<meta-data
android:name="com.google.firebase.ml.vision.DEPENDENCIES"
android:value="ocr" />
<!-- To use multiple models: android:value="ocr,label,barcode,face" -->
</application>
在安装应用程序时,它将下载您当前缺少的资源。
关于android - 如何在Flutter中使用文字识别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58709427/