身份证本地质量识别闪退
weinongxinxi 发布于2018-06 浏览:2976 回复:6
0
收藏

在识别身份证的时候,初始化本地质量控制闪退
在activity 页面的onCreate 调用CameraNativeHelper.init(context, OCR.getInstance().getLicense(), callback);
在onDestory 中调用 CameraNativeHelper.release();
启动此Activity --关闭此activity ,几次后就会崩溃(毕现)

收藏
点赞
0
个赞
共6条回复 最后由用户已被禁言回复于2022-04
#7bwzhny回复于2019-01

调用身份证本地质量控制黑屏是什么原因

0
#6四月一号9回复于2019-01

记录一下, 2019年01月18日 , 踩到同样的坑

0
#5追星逐月的家回复于2018-10

楼主的图片很模糊,意思别手动释放资源是吧

0
#4meteorasd555回复于2018-06

onDestory和onCreate的顺序无法保证,可能启动activity的时候onCreate先调用,但是上次退出的onDestory才调用,会引发异常。官方的demo是放在另一个activity中,其实可以放到Application中

0
#3weinongxinxi回复于2018-06

已经解决了;

确实是在移动端的崩溃,在这里说一下这个问题,以便如果有人碰到这个坑的,可以避免一下;

本人是使用了百度ocr本地质量识别功能,用来扫描身份证后识别身份证的信息。在集成的过程中,看到官方demo中有这么一段代码:

所以我也就在相应的Activity中调用了这段代码,并在onDestory中对其进行了释放,但是,在打开该Activity的时候,会偶现崩溃。

解决方案:

不要调用CameraNativeHelper.init()方法;只要在启动CameraActivity的时候,传入本地token就可以了:

        Intent intent = new Intent(fragment.getContext(), CameraActivity.class);
        intent.putExtra(CameraActivity.KEY_OUTPUT_FILE_PATH,
                FileUtil.getSaveFile(fragment.getContext()).getAbsolutePath());
        intent.putExtra(CameraActivity.KEY_NATIVE_ENABLE,
                true);
        intent.putExtra(CameraActivity.KEY_NATIVE_TOKEN,
                OCR.getInstance().getLicense());
        // KEY_NATIVE_MANUAL设置了之后CameraActivity中不再自动初始化和释放模型
        // 请手动使用CameraNativeHelper初始化和释放模型
        // 推荐这样做,可以避免一些activity切换导致的不必要的异常
//        intent.putExtra(CameraActivity.KEY_NATIVE_MANUAL,
//                true);
        intent.putExtra(CameraActivity.KEY_CONTENT_TYPE, CameraActivity.CONTENT_TYPE_ID_CARD_FRONT);
        fragment.startActivityForResult(intent, requestCode);

 

注:从上面的代码和注释可以看出来一个问题,百度官方推荐手动初始化和释放模型,但是我发现手动初始化和释放模型会崩溃,还不如让CameraActivity自动初始化和释放模型

 

 

 

1
#2用户已被禁言回复于2018-06

问题貌似描述的不是那么清楚。闪退一般是在移动端了吧。

最好问题描述清楚一些。可以发帖和提交工单咨询。

1
TOP
切换版块