Android ocr 身份证扫描 经常闪退
weinongxinxi 发布于2018-06-22 浏览:2454 回复:4
1
收藏

使用ocr的过程中经常闪退

场景描述:在一个activity中包含多个fragment,这些fragment中有几个是使用了ocr 文字识别技术的,activity 底部有上一页和下一页 按钮负责切换fragment

代码结构:在每个用到的fragment onCreateView()中初始化本地质量控制模型 ,并在onDestroyView() 释放

产生问题的操作:频繁切换点击上一页下一页按钮,切换fragment 应用产生闪退,并且无法用截取日志

----------------------------------------------------------------------

代码部分:

在Application的onCreate()中调用initAccessTokenWithAkSk();

private void initAccessTokenWithAkSk() {
        OCR.getInstance().initAccessTokenWithAkSk(new OnResultListener() {
            @Override
            public void onResult(AccessToken result) {
                String token = result.getAccessToken();
            }

            @Override
            public void onError(OCRError error) {
                error.printStackTrace();
            }
        }, getApplicationContext(), Config.API_KEY, Config.SECRET_KEY);
    }

在每个应用到orc识别身份证信息的fragment中
onCreateView() 中调用initOcr()

private void initOcr() {
        ScanCamerHelper.getInstanche().initScanCamer(getContext());
    }
public void initScanCamer(Context context) {
        final String license = OCR.getInstance().getLicense();
        CameraNativeHelper.init(context, OCR.getInstance().getLicense(),
                new CameraNativeHelper.CameraNativeInitCallback() {
                    @Override
                    public void onError(int errorCode, Throwable e) {
                        String msg;
                        switch (errorCode) {
                            case CameraView.NATIVE_SOLOAD_FAIL:
                                msg = "加载so失败,请确保apk中存在ui部分的so";
                                break;
                            case CameraView.NATIVE_AUTH_FAIL:
                                msg = "授权本地质量控制token获取失败";
                                break;
                            case CameraView.NATIVE_INIT_FAIL:
                                msg = "本地质量控制";
                                break;
                            default:
                                msg = String.valueOf(errorCode);
                        }

                        LogUtil.e("baidu_ocr", msg);
                    }
                });
    }

onDestroyView() 中调用下面的代码

CameraNativeHelper.release();

 

 

收藏
点赞
1
个赞
共4条回复 最后由Jolin玖翎回复于2019-03-12
#5Jolin玖翎回复于2019-03-12

解决了吗

0
#4hefeitest回复于2018-10-05

抓logcat日志分析下错误吧

0
#3meteorasd555回复于2018-06-29

初始化和释放必须确保执行顺序

0
#2weinongxinxi回复于2018-06-22

大家顶一下,求解决

0
TOP
切换版块