Android Firebase ML套件:检查失败:';out_pix';必须为非NULL

Android Firebase ML套件:检查失败:';out_pix';必须为非NULL,android,firebase,firebase-mlkit,Android,Firebase,Firebase Mlkit,我正在使用Firebase ML Kit文本识别API,并在文本识别过程中获得以下添加的错误: A/native: image_util_common.cc:2757 Check failed: 'out_pix' Must be non NULL terminating. A/native: image_util_common.cc:2797 Check failed: 'out_pix' Must be non NULL A/libc: Fatal signal 6

我正在使用Firebase ML Kit文本识别API,并在文本识别过程中获得以下添加的错误:

A/native: image_util_common.cc:2757 Check failed: 'out_pix' Must be non NULL 
          terminating.
A/native: image_util_common.cc:2797 Check failed: 'out_pix' Must be non NULL 
A/libc: Fatal signal 6 (SIGABRT), code -6 in tid 19193 (FirebaseMLHandl)
A/native: terminating.
当我按照建议将图像从
jpg
转换为
bmp
时,只将错误更改为:

E/zygote: The String#value field is not present on Android versions >= 6.0
E/native: jni_helper.cc:170 GetContents failed: /data/user/0/com.google.android.gms/app_vision/ocr/data/models/rpn_lstm_engine_tfmini.bincfg
E/native: jni_helper.cc:170 GetContents failed: /data/user/0/com.google.android.gms/app_vision/ocr/data/models/semanticlift_engine_0.2.bincfg
A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x0 in tid 13092 (ocr_seg_4/13092)
以下是触发API的代码:

Uri uri = Uri.fromFile(file);
FirebaseVisionImage image = FirebaseVisionImage.fromFilePath(context, uri); 

FirebaseVisionTextDetector detector = FirebaseVision.getInstance().getVisionTextDetector();

Task<FirebaseVisionText> result =
        detector.detectInImage(image)
                .addOnSuccessListener(new OnSuccessListener<FirebaseVisionText>() {

                    List<String> words = new ArrayList<>();

                    @Override
                    public void onSuccess(FirebaseVisionText firebaseVisionText) {
                        for (FirebaseVisionText.Block block: firebaseVisionText.getBlocks()) {
                            Rect boundingBox = block.getBoundingBox();
                            Point[] cornerPoints = block.getCornerPoints();
                            String text = block.getText();
                            Log.d(TAG, "Detected Text: " + text);

                            for (FirebaseVisionText.Line line: block.getLines()) {
                                for (FirebaseVisionText.Element element: line.getElements()) {
                                    String textPart = element.getText();
                                    words.add(textPart);
                                    Log.d(TAG, "textPart: " + textPart);
                                }
                            }
                        }
                    }
                })
                .addOnFailureListener(
                        new OnFailureListener() {
                            @Override
                            public void onFailure(@NonNull Exception e) {
                                // Task failed with an exception
                                // ...
                            }
                        });
Uri=Uri.fromFile(文件);
FirebaseVisionImage=FirebaseVisionImage.fromFilePath(上下文,uri);
FirebaseVisionTextDetector=FirebaseVision.getInstance().getVisionTextDetector();
任务结果=
检测器。检测图像(图像)
.addOnSuccessListener(新的OnSuccessListener(){
List words=new ArrayList();
@凌驾
成功时公共无效(FirebaseVisionText FirebaseVisionText){
对于(FirebaseVisionText.Block块:FirebaseVisionText.getBlocks()){
Rect boundingBox=block.getBoundingBox();
Point[]cornerPoints=block.getCornerPoints();
String text=block.getText();
Log.d(标签,“检测到的文本:”+文本);
对于(FirebaseVisionText.Line:block.getLines()){
对于(FirebaseVisionText.Element:line.getElements()){
字符串textPart=element.getText();
添加(文本部分);
Log.d(标记“textPart:+textPart”);
}
}
}
}
})
.addOnFailureListener(
新的OnFailureListener(){
@凌驾
public void onFailure(@NonNull异常e){
//任务失败,出现异常
// ...
}
});

您使用的图像文件格式是什么?你能分享一下图像文件吗?我来看看?此外,您可能希望尝试将图像转换为位图,并查看它是否有效。谢谢。从Uri转换成位图的过程中似乎发生了故障+1尝试脱机转换为位图,然后查看是否有效。另外,要检查Uri是否正确,您是否可以创建ImageView并检查图像是否可以正确显示?setImageURI(uri)@IsabellaChen我处理大量的图像,这些图像是
.jpg
文件,其中一些可以从附带的屏幕截图中看到。我使用的图像是名为
Total Text
的数据集的一部分,您可以从这里访问它:。@PannagSanketi Uri应该是正确的,因为我直接从位于外部存储器文件夹中的每个文件创建它(当我循环文件时)。@talha06,我下载了数据集并尝试了一些图像,它们对我来说都很好。请参见检测结果:哪些特定图像不适合您?告诉我文件名,我会试试。您还可以尝试自己将文件读取到位图:MediaStore.Images.Media.getBitmap(context.getContentResolver(),imageUri)。您可以在调试器中查看图像是否正确。