#android #android-studio #android-gradle-plugin #barcode-scanner
#Android #android-studio #android-gradle-plugin #сканер штрих-кода
Вопрос:
https://github.com/KingsMentor/MobileVisionBarcodeScanner MobileVisionBarcodeScanner используется для сканирования QR-кода и успешно работает без каких-либо проблем, пока плагин Android Gradle не был обновлен до версии 4.1.0
Это происходит следующим образом
- Открывается действие сканера
- Нажмите кнопку назад, чтобы закрыть
- Сбой с последующей трассировкой стека
java.lang.RuntimeException: невозможно уничтожить activity {com.robusta.befit/com.robusta.befit.features.scanner.ScannerActivity}: java.lang.Исключение NullPointerException: попытка вызвать виртуальный метод ‘java.lang.Поток $State java.lang.Thread.getState()’ для нулевой ссылки на объект
Вызвано: java.lang.Исключение NullPointerException: попытка вызвать виртуальный метод ‘java.lang.Поток $State java.lang.Thread.getState()’ для нулевой ссылки на объект в com.google.android.gms.samples.vision.barcodereader.ui.camera.CameraSource$FrameProcessingRunnable.release(CameraSource.java:1117 ) в com.google.android.gms.samples.vision.barcodereader.ui.camera.CameraSource.release(CameraSource.java: 327) в com.google.android.gms.samples.vision.barcodereader.ui.camera.CameraSourcePreview.release(CameraSourcePreview.java:84 ) в com.google.android.gms.samples.vision.barcodereader.Захват штрих-кода.onDestroy(BarcodeCapture.java:308)
Комментарии:
1. вы нашли какое-либо решение?
2. Мне посоветовали перейти только на ML KIT
Ответ №1:
Из журнала изменений плагина gradle 4.1:
Утверждения в отладочных сборках
Когда вы создаете отладочную версию своего приложения с помощью плагина Android Gradle 4.1.0 и выше, встроенный компилятор (D8) перепишет код вашего приложения, чтобы включить утверждения во время компиляции, поэтому у вас всегда есть активные проверки утверждений.
Комментарий к приведенному ниже коду заставит его работать
assert (mProcessingThread.getState() == State.TERMINATED);
Пожалуйста, обратите внимание: переход на ML Kit является постоянным решением.