#android #firebase #firebase-mlkit
#Android #firebase #firebase-mlkit
Вопрос:
Я использовал Mobile Vision API для обнаружения штрих-кодов с помощью потока камеры, точно так же, как в этом примере:https://github.com/googlesamples/android-vision/tree/master/visionSamples/barcode-reader , к сожалению, существует проблема, при которой приложение вылетает на ровном месте из-за разыменования нулевого указателя в собственном коде устройства чтения штрих-кодов, см. Выпуск # 351.
Хотя проблема, о которой сообщалось, на устройстве Pixel, я обнаружил тот же stacktrace на своих Samsung Tab A устройствах, работающих под управлением Android 7 и 8, вот stacktrace ошибки
Build fingerprint: 'samsung/gta2xlltespr/gta2xlltespr:8.1.0/M1AJQ/T597PVPU1ASA2:user/release-keys'
03-13 15:42:47.077 F/DEBUG (11969): Revision: '7'
03-13 15:42:47.077 F/DEBUG (11969): ABI: 'arm'
03-13 15:42:47.078 F/DEBUG (11969): pid: 11696, tid: 11874, name: Thread-24 03-13 15:42:47.078 F/DEBUG (11969): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0xc
03-13 15:42:47.078 F/DEBUG (11969): Cause: null pointer dereference
03-13 15:42:47.078 F/DEBUG (11969): r0 ea09c5a8 r1 a25b973a r2 ea09b6d0 r3 00000000
03-13 15:42:47.078 F/DEBUG (11969): r4 00000000 r5 ea09b6d0 r6 c7b967f0 r7 c7b96904
03-13 15:42:47.078 F/DEBUG (11969): r8 00000022 r9 00000001 sl 43dc8000 fp 44518000
03-13 15:42:47.078 F/DEBUG (11969): ip eb2b3d58 sp c7b967e0 lr eb28a345 pc c8951c12 cpsr 200d0030
03-13 15:42:47.080 F/DEBUG (11969):
03-13 15:42:47.080 F/DEBUG (11969): backtrace:
03-13 15:42:47.080 F/DEBUG (11969): #00 pc 00011c12 /data/data/com.google.android.gms/app_vision/barcode/libs/armeabi-v7a/libbarhopper.so
03-13 15:42:47.080 F/DEBUG (11969): #01 pc 0000a345 /data/data/com.google.android.gms/app_vision/barcode/libs/armeabi-v7a/libbarhopper.so
03-13 15:42:47.080 F/DEBUG (11969): #02 pc 0000331d /data/data/com.google.android.gms/app_vision/barcode/libs/armeabi-v7a/libbarhopper.so
03-13 15:42:47.080 F/DEBUG (11969): #03 pc 000043df /data/data/com.google.android.gms/app_vision/barcode/libs/armeabi-v7a/libbarhopper.so
03-13 15:42:47.081 F/DEBUG (11969): #04 pc 00001e63 /data/data/com.google.android.gms/app_vision/barcode/libs/armeabi-v7a/libbarhopper.so
03-13 15:42:47.081 F/DEBUG (11969): #05 pc 00002a91 /data/data/com.google.android.gms/app_vision/barcode/libs/armeabi-v7a/libbarhopper.so
03-13 15:42:47.081 F/DEBUG (11969): #06 pc 00000adf /data/user_de/0/com.google.android.gms/app_chimera/m/00000034/oat/arm/DynamiteModulesA.odex (offset 0x6000)
Это важная функция в моем текущем приложении, и я был бы очень признателен, если бы кто-нибудь сказал мне, безопасно ли использовать MLKit.
Ответ №1:
SIGSEGV
псевдоним 11
означает ошибку сегментации; адрес памяти 0xc
не сопоставлен объекту; это определяет siginfo.h, и это вызвано доступом к адресу, который не был выделен (это почти то же самое, что IndexOutOfBoundsException
в Java
, но на уровне выделения памяти).
пример приложения использует безнадежно устаревшие зависимости. лучше попробуйте текущую версию:
implementation "com.google.android.gms:play-services-base:16.1.0"
implementation "com.google.android.gms:play-services-vision:17.0.2"
трудно сказать, является ли это «сохранить», потому что в вопросе не содержится наименьшего кода — и при этом не указывается, какую версию библиотеки вы используете. таким образом, это невозможно воспроизвести надежным способом.
Комментарии:
1. Я забыл добавить, но я использую эту версию сервисов Google Play в build.gradle
classpath 'com.google.gms:google-services:4.2.0'
В app / build.gradleimplementation 'com.google.android.gms:play-services-vision:17.0.2'