2017-11-09 19 views
3

Google의 OCR 라이브러리를 사용하여 내 앱에서 이미지의 텍스트를 감지하고 있습니다. 이전에는 잘 작동했지만 갑자기 오류가 발생하기 시작했습니다. TextReconiger에서 인스턴스화하는 동안 충돌이 발생합니다. 삼성 S6 가장자리, 삼성 S7 등 일부 장치에서이 충돌이 발생하고 일부 장치에서 잘 작동합니다.TextReconiger에서 인스턴스화하는 동안 Google Ocr lib로 인해 내 응용 프로그램에서 네이티브 충돌을 처리 할 수 ​​있습니까?

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 스토어 내 앱의 평가에 영향을 미치고 :

내 코드에서

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

충돌 로그를이 라인에 충돌을 얻고있다. 이 충돌 로그에서이 문제를 해결하는 방법을 알지 못합니다. 누군가이 문제에 대한 해결책을 알고 있다면 나를 도와주세요.

+3

당신은 질문이 & 당신이 그것에 대한 대답을 & 솔루션이 SO에 사용할 수없는 경우, 다음 질문에 관련 정보와 문제를 설명 및 다음 답변으로 솔루션을 제공합니다. – iYoung

답변

1

충돌을 줄이기 위해 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 
} 

약간의 도움이 될 수 있습니다. 감사합니다

+0

업데이트 환경 설정이 isGVSupportThisDevice를 false로 바꾸려면 마지막 줄이 거짓 대신 true 여야합니다. 틀렸다면 수정하십시오. – EviatarS

+0

답변을 업데이트했습니다 ... 감사합니다 @EviatarS –

+0

우리가하고있는 일은 Firebase에서 충돌하는 장치 목록을 유지하는 것입니다. 어떤 장치가 망가질 경우 우리는 수동으로 장치를 firebase에 추가하고 있습니다. GitHub 문제 페이지에는 이미 수백 개의 장치가 이미 있습니다. – Sunny