Google 文字识别错误 Android Studio

Google Text Recognition Error Android Studio

我正在开发一个应用程序,我正在其中实现 google 文本识别。 这是我正在关注的 link : https://developers.google.com/ml-kit/vision/text-recognition/android

我已经完成了那里描述的所有事情,但我仍然遇到错误。

这是我的 gradle 文件中的内容:

implementation 'com.google.android.gms:play-services-mlkit-text-recognition:16.1.0'

我的清单文件中也有这些行:

<uses-permission android:name="android.permission.INTERNET"/>

<meta-data
    android:name="com.google.android.gms.version"
    android:value="@integer/google_play_services_version"/>
<meta-data
    android:name="com.google.mlkit.vision.DEPENDENCIES"
    android:value="ocr" />

我正在点击一个按钮 OCR 然后我调用下面的代码行:

InputImage inputImage = InputImage.fromBitmap(bitmap, 0);
            TextRecognition.getClient().process(inputImage).addOnSuccessListener(new OnSuccessListener<Text>() {
                @Override
                public void onSuccess(Text text) {
                    string = text.getText();
                    success = true;
                }
            }).addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                    e.printStackTrace();
                    success = false;
                }
            });

当我点击 OCR 按钮时,立即抛出错误。 以下是堆栈跟踪:

W/DynamiteModule: Local module descriptor class for com.google.android.gms.vision.dynamite.ocr not found.
E/LibraryVersion: Failed to get app version for libraryName: text-recognition
I/DynamiteModule: Considering local module com.google.android.gms.vision.dynamite.ocr:0 and remote module com.google.android.gms.vision.dynamite.ocr:0
D/TextNativeHandle: Cannot load feature, fall back to load dynamite module.
W/scanner.camsca: Unsupported class loader
W/scanner.camsca: Skipping duplicate class check due to unsupported classloader
I/DynamiteModule: Considering local module com.google.android.gms.vision.ocr:0 and remote module com.google.android.gms.vision.ocr:1
    Selected remote version of com.google.android.gms.vision.ocr, version >= 1
V/DynamiteModule: Dynamite loader version >= 2, using loadModule2NoCrashUtils
I/DynamiteLoaderV2: [71] VisionOcr.optional
W/scanner.camsca: Unsupported class loader
I/native: start_ocr_856638336_langid.cc:33 StartOcr with label: latin_script_gmvapi_android
    jni_helper.cc:115 Loading model config /data/user/0/com.scanner.camscan/cache/vision/ocr/data/models/semanticlift_rpn_lstm_engine_tfmini.bincfg
I/native: region_proposal_text_detector.cc:1976 Compute manager Max in flight region detector: 1
    common_util.h:39 Removing Thread Pool: ocr_region
    tensor_detector_client.cc:1643 Compute manager Max in flight detector: 1
I/native: common_util.h:35 Resizing Thread Pool: ocr_det to 4
I/native: tfmini_model_interface.cc:124 Loaded weights from /data/user/0/com.scanner.camscan/cache/vision/ocr/data/models/tfmini_rpn_detector_space_to_depth_gray_quantized_v2_model.data
    timer.cc:71 PhotoOcrEngine::Init (detector): 3.72583 ms (elapsed)
    assist_recognizer.cc:94 Initializing nugget matcher with /data/user/0/com.scanner.camscan/cache/vision/ocr/data/models/nugget_stats_1.0.dat
I/native: timer.cc:71 PhotoOcrEngine::Init (assist recognizer): 0.262136 ms (elapsed)
I/native: timer.cc:71 LanguageIdMutator: 4.42141 ms (elapsed)
    timer.cc:71 BeamSearch::Init (mutator): 4.58203 ms (elapsed)
I/native: common_util.h:35 Resizing Thread Pool: ocr_segm to 4
I/native: tfmini_model_interface.cc:102 Loaded fp16 weights from /data/user/0/com.scanner.camscan/cache/vision/ocr/data/models/tfmini_latin_conv_model.data_fp16
I/native: tfmini_model_interface.cc:102 Loaded fp16 weights from /data/user/0/com.scanner.camscan/cache/vision/ocr/data/models/tfmini_latin_lstm_model.data_fp16
    timer.cc:71 PhotoOcrEngine::Init (recognizer): 8.83693 ms (elapsed)
    timer.cc:71 Init: 13.0749 ms (elapsed)
I/native: start_ocr_856638336_langid.cc:42 StartOcr success

我该如何纠正这个错误。 谢谢

我以前遇到过类似的问题。

这些不是实际错误。它们只是警告和消息。你可以忽略它们。 我猜是,你在布尔变量 success onSuccess 上设置了 true,在 onFailure 上设置了 false,并根据它的值执行进一步的操作。

只需在 string = text.getText();

之后直接从 onSuccess 调用更多方法