在TextReconiger实例化期间,如何处理由于Google Ocr lib导致的应用程序中的本机崩溃?

时间:2017-11-09 13:56:25

标签: android ocr google-vision text-recognition

我正在使用Google的OCR库来检测我的应用中的图像文字。早些时候工作正常,但突然间它开始出错了。我在TextReconiger实例化期间遇到崩溃。我在三星S6边缘,三星S7等设备上遇到此崩溃,在某些设备上它工作正常。

我的代码

中的这一行崩溃了
TextRecognizer textRecognizer = new TextRecognizer.Builder(context).build();

崩溃日志:

  native: pc 000000000006f9fc  /system/lib64/libc.so (tgkill+8)
  native: pc 000000000006cd10  /system/lib64/libc.so (pthread_kill+64)
  native: pc 0000000000025078  /system/lib64/libc.so (raise+24)
  native: pc 000000000001cc04  /system/lib64/libc.so (abort+52)
  native: pc 00000000004750d0 
  /data/data/com.google.android.gms/app_vision/ocr/libs/arm64-
  v8a/libocr.so
  native: pc 0000000000475770  
  /data/data/com.google.android.gms/app_vision/ocr/libs/arm64-
  v8a/libocr.so
  native: pc 0000000000475814  
  /data/data/com.google.android.gms/app_vision/ocr/libs/arm64-
  v8a/libocr.so
  native: pc 0000000000474830  
  /data/data/com.google.android.gms/app_vision/ocr/libs/arm64-
  v8a/libocr.so
  native: pc 000000000026cee4  
  /data/data/com.google.android.gms/app_vision/ocr/libs/arm64-
  v8a/libocr.so
  native: pc 0000000000271190  
  /data/data/com.google.android.gms/app_vision/ocr/libs/arm64-
  v8a/libocr.so
  native: pc 0000000000065794  
  /data/data/com.google.android.gms/app_vision/ocr/libs/arm64-
  v8a/libocr.so
  native: pc 0000000000065488  
  /data/data/com.google.android.gms/app_vision/ocr/libs/arm64-
  v8a/libocr.so
  native: pc 000000000027caf4  
  /data/data/com.google.android.gms/app_vision/ocr/libs/arm64-
  v8a/libocr.so
  native: pc 0000000000280274  
  /data/data/com.google.android.gms/app_vision/ocr/libs/arm64-
  v8a/libocr.so
  native: pc 0000000000067c84  
  /data/data/com.google.android.gms/app_vision/ocr/libs/arm64-
  v8a/libocr.so
  native: pc 0000000000067f64  
  /data/data/com.google.android.gms/app_vision/ocr/libs/arm64-
  v8a/libocr.so
  native: pc 0000000000063dec  
  /data/data/com.google.android.gms/app_vision/ocr/libs/arm64-
  v8a/libocr.so
  native: pc 0000000000387e60  
/data/user_de/0/com.google.android.gms/app_chimera/m/00000027/oat/arm64
/DynamiteModulesA_GmsCore_prodmnc_xxhdpi_release.odex

此次崩溃正在影响我在Google Play商店中的应用评分。从这个崩溃日志我不知道如何解决这个问题。如果有人知道这个问题的解决方案,请帮助我。

2 个答案:

答案 0 :(得分:1)

我在App端实现了一些逻辑来减少崩溃。

从App方面我们可以做一件可以减少崩溃的事情。我们可以编写代码来跟踪应用程序在实例化TextRecognizer对象期间是否在设备上崩溃,然后从下次我们可以绕过/禁用OCR功能。但是在其他设备上(没有崩溃)它会完美运行。

这会导致受影响的设备崩溃一次,并且从下次没有崩溃(是的,它会影响功能)。

boolean isFirstTimeUser = getBooleanFromPreference (default value TRUE) 
boolean isGVSupportThisDevice = getBooleanFromPreference (default value False)

if (isFirstTimeUser || isGVSupportThisDevice) {

     Update Preference to make isFirstTimeUser to false

     textRecognizer = new TextRecognizer.Builder(context).build();

     Update Preference to make isGVSupportThisDevice to True
}

可能这会有所帮助。感谢

答案 1 :(得分:0)

我有同样的问题和相同的错误跟踪。

我读到带有OCR修复程序的新版Google Play服务版本目前处于测试版渠道。我刚测试过它并且正在工作!

https://play.google.com/apps/testing/com.google.android.gms