Open radivojeostojic opened 5 months ago
Hi @radivojeostojic
Thank you for reaching out.
Are you maybe able to reproduce the behavior on your end? Have you tried to reproduce it with our sample application?
@mparadina I tried to run the sample app on Android 14, but I didn't manage to reproduce this issue. On the other hand, I am seeing a lot of different exceptions:
E/AndroidRuntime(13067): FATAL EXCEPTION: highpool[0]
E/AndroidRuntime(13067): Process: com.google.android.gms.persistent, PID: 13067
E/AndroidRuntime(13067): java.lang.IllegalStateException: Maximum limit of concurrent alarms 500 reached for uid: u0a130, callingPackage: com.google.android.gms
E/AndroidRuntime(13067): at android.os.Parcel.createExceptionOrNull(Parcel.java:3065)
E/AndroidRuntime(13067): at android.os.Parcel.createException(Parcel.java:3041)
E/AndroidRuntime(13067): at android.os.Parcel.readException(Parcel.java:3024)
E/AndroidRuntime(13067): at android.os.Parcel.readException(Parcel.java:2966)
E/AndroidRuntime(13067): at android.app.IAlarmManager$Stub$Proxy.set(IAlarmManager.java:311)
E/AndroidRuntime(13067): at android.app.AlarmManager.setImpl(AlarmManager.java:1084)
E/AndroidRuntime(13067): at android.app.AlarmManager.setExactAndAllowWhileIdle(AlarmManager.java:1348)
E/AndroidRuntime(13067): at avps.h(:com.google.android.gms@231818044@23.18.18 (190400-535401451):3)
E/AndroidRuntime(13067): at avpc.e(:com.google.android.gms@231818044@23.18.18 (190400-535401451):5)
E/AndroidRuntime(13067): at awqh.j(:com.google.android.gms@231818044@23.18.18 (190400-535401451):6)
E/AndroidRuntime(13067): at avkg.e(:com.google.android.gms@231818044@23.18.18 (190400-535401451):0)
E/AndroidRuntime(13067): at avkb.r(:com.google.android.gms@231818044@23.18.18 (190400-535401451):11)
E/AndroidRuntime(13067): at awqi.z(:com.google.android.gms@231818044@23.18.18 (190400-535401451):3)
E/AndroidRuntime(13067): at czhg.h(:com.google.android.gms@231818044@23.18.18 (190400-535401451):22)
E/AndroidRuntime(13067): at czhc.run(:com.google.android.gms@231818044@23.18.18 (190400-535401451):19)
E/AndroidRuntime(13067): at aced.c(:com.google.android.gms@231818044@23.18.18 (190400-535401451):6)
E/AndroidRuntime(13067): at aced.run(:com.google.android.gms@231818044@23.18.18 (190400-535401451):7)
E/AndroidRuntime(13067): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
E/AndroidRuntime(13067): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
E/AndroidRuntime(13067): at acjn.run(:com.google.android.gms@231818044@23.18.18 (190400-535401451):0)
E/AndroidRuntime(13067): at java.lang.Thread.run(Thread.java:1012)
E/AndroidRuntime(13067): Suppressed: dfhy:
E/AndroidRuntime(13067): at tk_trace.location_base-GoogleLocationManagerChimeraService_onStartCommand(Unknown Source:0)
E/AndroidRuntime(13067): Caused by: android.os.RemoteException: Remote stack trace:
E/AndroidRuntime(13067): at com.android.server.alarm.AlarmManagerService.setImpl(AlarmManagerService.java:2365)
E/AndroidRuntime(13067): at com.android.server.alarm.AlarmManagerService$5.set(AlarmManagerService.java:3006)
E/AndroidRuntime(13067): at android.app.IAlarmManager$Stub.onTransact(IAlarmManager.java:181)
E/AndroidRuntime(13067): at android.os.Binder.execTransactInternal(Binder.java:1339)
E/AndroidRuntime(13067): at android.os.Binder.execTransact(Binder.java:1275)
E/AndroidRuntime(13067):
E/AndroidRuntime(13178): FATAL EXCEPTION: highpool[5]
E/AndroidRuntime(13178): Process: com.google.android.gms.persistent, PID: 13178
E/AndroidRuntime(13178): java.lang.IllegalStateException: Maximum limit of concurrent alarms 500 reached for uid: u0a130, callingPackage: com.google.android.gms
E/AndroidRuntime(13178): at android.os.Parcel.createExceptionOrNull(Parcel.java:3065)
E/AndroidRuntime(13178): at android.os.Parcel.createException(Parcel.java:3041)
E/AndroidRuntime(13178): at android.os.Parcel.readException(Parcel.java:3024)
E/AndroidRuntime(13178): at android.os.Parcel.readException(Parcel.java:2966)
E/AndroidRuntime(13178): at android.app.IAlarmManager$Stub$Proxy.set(IAlarmManager.java:311)
E/AndroidRuntime(13178): at android.app.AlarmManager.setImpl(AlarmManager.java:1084)
E/AndroidRuntime(13178): at android.app.AlarmManager.setExactAndAllowWhileIdle(AlarmManager.java:1348)
E/AndroidRuntime(13178): at avps.h(:com.google.android.gms@231818044@23.18.18 (190400-535401451):3)
E/AndroidRuntime(13178): at avpc.e(:com.google.android.gms@231818044@23.18.18 (190400-535401451):5)
E/AndroidRuntime(13178): at awqh.j(:com.google.android.gms@231818044@23.18.18 (190400-535401451):6)
E/AndroidRuntime(13178): at avkg.e(:com.google.android.gms@231818044@23.18.18 (190400-535401451):0)
E/AndroidRuntime(13178): at avkb.r(:com.google.android.gms@231818044@23.18.18 (190400-535401451):11)
E/AndroidRuntime(13178): at awqi.z(:com.google.android.gms@231818044@23.18.18 (190400-535401451):3)
E/AndroidRuntime(13178): at czhg.h(:com.google.android.gms@231818044@23.18.18 (190400-535401451):22)
E/AndroidRuntime(13178): at czhc.run(:com.google.android.gms@231818044@23.18.18 (190400-535401451):19)
E/AndroidRuntime(13178): at aced.c(:com.google.android.gms@231818044@23.18.18 (190400-535401451):6)
E/AndroidRuntime(13178): at aced.run(:com.google.android.gms@231818044@23.18.18 (190400-535401451):7)
E/AndroidRuntime(13178): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
E/AndroidRuntime(13178): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
E/AndroidRuntime(13178): at acjn.run(:com.google.android.gms@231818044@23.18.18 (190400-535401451):0)
E/AndroidRuntime(13178): at java.lang.Thread.run(Thread.java:1012)
E/AndroidRuntime(13178): Suppressed: dfhy:
E/AndroidRuntime(13178): at tk_trace.location_base-GoogleLocationManagerChimeraService_onStartCommand(Unknown Source:0)
E/AndroidRuntime(13178): Caused by: android.os.RemoteException: Remote stack trace:
E/AndroidRuntime(13178): at com.android.server.alarm.AlarmManagerService.setImpl(AlarmManagerService.java:2365)
E/AndroidRuntime(13178): at com.android.server.alarm.AlarmManagerService$5.set(AlarmManagerService.java:3006)
E/AndroidRuntime(13178): at android.app.IAlarmManager$Stub.onTransact(IAlarmManager.java:181)
E/AndroidRuntime(13178): at android.os.Binder.execTransactInternal(Binder.java:1339)
E/AndroidRuntime(13178): at android.os.Binder.execTransact(Binder.java:1275)
E/AndroidRuntime(13178):
E/AndroidRuntime(13302): FATAL EXCEPTION: highpool[4]
E/AndroidRuntime(13302): Process: com.google.android.gms.persistent, PID: 13302
E/AndroidRuntime(13302): java.lang.IllegalStateException: Maximum limit of concurrent alarms 500 reached for uid: u0a130, callingPackage: com.google.android.gms
E/AndroidRuntime(13302): at android.os.Parcel.createExceptionOrNull(Parcel.java:3065)
E/AndroidRuntime(13302): at android.os.Parcel.createException(Parcel.java:3041)
E/AndroidRuntime(13302): at android.os.Parcel.readException(Parcel.java:3024)
E/AndroidRuntime(13302): at android.os.Parcel.readException(Parcel.java:2966)
E/AndroidRuntime(13302): at android.app.IAlarmManager$Stub$Proxy.set(IAlarmManager.java:311)
E/AndroidRuntime(13302): at android.app.AlarmManager.setImpl(AlarmManager.java:1084)
E/AndroidRuntime(13302): at android.app.AlarmManager.setExactAndAllowWhileIdle(AlarmManager.java:1348)
E/AndroidRuntime(13302): at avps.h(:com.google.android.gms@231818044@23.18.18 (190400-535401451):3)
E/AndroidRuntime(13302): at avpc.e(:com.google.android.gms@231818044@23.18.18 (190400-535401451):5)
E/AndroidRuntime(13302): at awqh.j(:com.google.android.gms@231818044@23.18.18 (190400-535401451):6)
E/AndroidRuntime(13302): at avkg.e(:com.google.android.gms@231818044@23.18.18 (190400-535401451):0)
E/AndroidRuntime(13302): at avkb.r(:com.google.android.gms@231818044@23.18.18 (190400-535401451):11)
E/AndroidRuntime(13302): at awqi.z(:com.google.android.gms@231818044@23.18.18 (190400-535401451):3)
E/AndroidRuntime(13302): at czhg.h(:com.google.android.gms@231818044@23.18.18 (190400-535401451):22)
E/AndroidRuntime(13302): at czhc.run(:com.google.android.gms@231818044@23.18.18 (190400-535401451):19)
E/AndroidRuntime(13302): at aced.c(:com.google.android.gms@231818044@23.18.18 (190400-535401451):6)
E/AndroidRuntime(13302): at aced.run(:com.google.android.gms@231818044@23.18.18 (190400-535401451):7)
E/AndroidRuntime(13302): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
E/AndroidRuntime(13302): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
E/AndroidRuntime(13302): at acjn.run(:com.google.android.gms@231818044@23.18.18 (190400-535401451):0)
E/AndroidRuntime(13302): at java.lang.Thread.run(Thread.java:1012)
E/AndroidRuntime(13302): Suppressed: dfhy:
E/AndroidRuntime(13302): at tk_trace.location_base-GoogleLocationManagerChimeraService_onStartCommand(Unknown Source:0)
E/AndroidRuntime(13302): Caused by: android.os.RemoteException: Remote stack trace:
E/AndroidRuntime(13302): at com.android.server.alarm.AlarmManagerService.setImpl(AlarmManagerService.java:2365)
E/AndroidRuntime(13302): at com.android.server.alarm.AlarmManagerService$5.set(AlarmManagerService.java:3006)
E/AndroidRuntime(13302): at android.app.IAlarmManager$Stub.onTransact(IAlarmManager.java:181)
E/AndroidRuntime(13302): at android.os.Binder.execTransactInternal(Binder.java:1339)
E/AndroidRuntime(13302): at android.os.Binder.execTransact(Binder.java:1275)
E/AndroidRuntime(13302):
E/AndroidRuntime(13407): FATAL EXCEPTION: highpool[1]
E/AndroidRuntime(13407): Process: com.google.android.gms.persistent, PID: 13407
E/AndroidRuntime(13407): java.lang.IllegalStateException: Maximum limit of concurrent alarms 500 reached for uid: u0a130, callingPackage: com.google.android.gms
E/AndroidRuntime(13407): at android.os.Parcel.createExceptionOrNull(Parcel.java:3065)
E/AndroidRuntime(13407): at android.os.Parcel.createException(Parcel.java:3041)
E/AndroidRuntime(13407): at android.os.Parcel.readException(Parcel.java:3024)
E/AndroidRuntime(13407): at android.os.Parcel.readException(Parcel.java:2966)
E/AndroidRuntime(13407): at android.app.IAlarmManager$Stub$Proxy.set(IAlarmManager.java:311)
E/AndroidRuntime(13407): at android.app.AlarmManager.setImpl(AlarmManager.java:1084)
E/AndroidRuntime(13407): at android.app.AlarmManager.setExactAndAllowWhileIdle(AlarmManager.java:1348)
E/AndroidRuntime(13407): at avps.h(:com.google.android.gms@231818044@23.18.18 (190400-535401451):3)
E/AndroidRuntime(13407): at avpc.e(:com.google.android.gms@231818044@23.18.18 (190400-535401451):5)
E/AndroidRuntime(13407): at awqh.j(:com.google.android.gms@231818044@23.18.18 (190400-535401451):6)
E/AndroidRuntime(13407): at avkg.e(:com.google.android.gms@231818044@23.18.18 (190400-535401451):0)
E/AndroidRuntime(13407): at avkb.r(:com.google.android.gms@231818044@23.18.18 (190400-535401451):11)
E/AndroidRuntime(13407): at awqi.z(:com.google.android.gms@231818044@23.18.18 (190400-535401451):3)
E/AndroidRuntime(13407): at czhg.h(:com.google.android.gms@231818044@23.18.18 (190400-535401451):22)
E/AndroidRuntime(13407): at czhc.run(:com.google.android.gms@231818044@23.18.18 (190400-535401451):19)
E/AndroidRuntime(13407): at aced.c(:com.google.android.gms@231818044@23.18.18 (190400-535401451):6)
E/AndroidRuntime(13407): at aced.run(:com.google.android.gms@231818044@23.18.18 (190400-535401451):7)
E/AndroidRuntime(13407): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
E/AndroidRuntime(13407): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
E/AndroidRuntime(13407): at acjn.run(:com.google.android.gms@231818044@23.18.18 (190400-535401451):0)
E/AndroidRuntime(13407): at java.lang.Thread.run(Thread.java:1012)
E/AndroidRuntime(13407): Suppressed: dfhy:
E/AndroidRuntime(13407): at tk_trace.location_base-GoogleLocationManagerChimeraService_onStartCommand(Unknown Source:0)
E/AndroidRuntime(13407): Caused by: android.os.RemoteException: Remote stack trace:
E/AndroidRuntime(13407): at com.android.server.alarm.AlarmManagerService.setImpl(AlarmManagerService.java:2365)
E/AndroidRuntime(13407): at com.android.server.alarm.AlarmManagerService$5.set(AlarmManagerService.java:3006)
E/AndroidRuntime(13407): at android.app.IAlarmManager$Stub.onTransact(IAlarmManager.java:181)
E/AndroidRuntime(13407): at android.os.Binder.execTransactInternal(Binder.java:1339)
E/AndroidRuntime(13407): at android.os.Binder.execTransact(Binder.java:1275)
I am also getting Network error, although I have internet connection on my device:
@mparadina We actually managed to see similar logs while testing the sample app on a physical device (Moto G13, Android 13):
E/lIlIIIlIll.java:36@Recognition(32081): Failed to capture frame
E/lIlIIIlIll.java:36@Recognition(32081): java.lang.IllegalStateException: Session has been closed; further changes are illegal.
E/lIlIIIlIll.java:36@Recognition(32081): at android.hardware.camera2.impl.CameraCaptureSessionImpl.checkNotClosed(CameraCaptureSessionImpl.java:887)
E/lIlIIIlIll.java:36@Recognition(32081): at android.hardware.camera2.impl.CameraCaptureSessionImpl.capture(CameraCaptureSessionImpl.java:180)
E/lIlIIIlIll.java:36@Recognition(32081): at com.microblink.blinkid.secured.lIlIIIlIll.llIIlIlIIl(line:31)
E/lIlIIIlIll.java:36@Recognition(32081): at com.microblink.blinkid.secured.lIlIIIlIll.llIIlIlIIl(line:4)
E/lIlIIIlIll.java:36@Recognition(32081): at com.microblink.blinkid.secured.IIllllllll.IllIIIllII(line:2)
E/lIlIIIlIll.java:36@Recognition(32081): at com.microblink.blinkid.secured.IllIllIlll.llIIlIlIIl(line:8)
E/lIlIIIlIll.java:36@Recognition(32081): at com.microblink.blinkid.secured.IllIIlIIII.llIIlIlIIl(line:5)
E/lIlIIIlIll.java:36@Recognition(32081): at com.microblink.blinkid.secured.IIIllllllI.llIIlIlIIl(line:17)
E/lIlIIIlIll.java:36@Recognition(32081): at com.microblink.blinkid.secured.lIlIIlIIll.llIIlIlIIl(line:2)
E/lIlIIIlIll.java:36@Recognition(32081): at com.microblink.blinkid.secured.IllIIlIIII.IllIIIllII(line:1)
E/lIlIIIlIll.java:36@Recognition(32081): at com.microblink.blinkid.recognition.lllIIIlIlI.llIIlIlIIl(line:5)
E/lIlIIIlIll.java:36@Recognition(32081): at com.microblink.blinkid.recognition.NativeRecognizerWrapper.llIIlIlIIl(line:76)
E/lIlIIIlIll.java:36@Recognition(32081): at com.microblink.blinkid.recognition.IllIIIllII.run(line:12)
E/lIlIIIlIll.java:36@Recognition(32081): at android.os.Handler.handleCallback(Handler.java:942)
E/lIlIIIlIll.java:36@Recognition(32081): at android.os.Handler.dispatchMessage(Handler.java:99)
E/lIlIIIlIll.java:36@Recognition(32081): at com.microblink.blinkid.secured.llIIIllIlI.dispatchMessage(line:1)
E/lIlIIIlIll.java:36@Recognition(32081): at android.os.Looper.loopOnce(Looper.java:201)
E/lIlIIIlIll.java:36@Recognition(32081): at android.os.Looper.loop(Looper.java:288)
E/lIlIIIlIll.java:36@Recognition(32081): at com.microblink.blinkid.secured.llllIIIIll.run(line:21)
E/lIlIIIlIll.java:36@BaseCamera2Frame(32081): Failed to capture frame
E/lIlIIIlIll.java:36@BaseCamera2Frame(32081): java.lang.IllegalStateException: Session has been closed; further changes are illegal.
E/lIlIIIlIll.java:36@BaseCamera2Frame(32081): at android.hardware.camera2.impl.CameraCaptureSessionImpl.checkNotClosed(CameraCaptureSessionImpl.java:887)
E/lIlIIIlIll.java:36@BaseCamera2Frame(32081): at android.hardware.camera2.impl.CameraCaptureSessionImpl.capture(CameraCaptureSessionImpl.java:180)
E/lIlIIIlIll.java:36@BaseCamera2Frame(32081): at com.microblink.blinkid.secured.lIlIIIlIll.llIIlIlIIl(line:31)
E/lIlIIIlIll.java:36@BaseCamera2Frame(32081): at com.microblink.blinkid.secured.lIlIIIlIll.llIIlIlIIl(line:4)
E/lIlIIIlIll.java:36@BaseCamera2Frame(32081): at com.microblink.blinkid.secured.IIllllllll.IllIIIllII(line:2)
E/lIlIIIlIll.java:36@BaseCamera2Frame(32081): at com.microblink.blinkid.secured.IllIllIlll.llIIlIlIIl(line:8)
E/lIlIIIlIll.java:36@BaseCamera2Frame(32081): at com.microblink.blinkid.secured.IllIIlIIII.llIIlIlIIl(line:5)
E/lIlIIIlIll.java:36@BaseCamera2Frame(32081): at com.microblink.blinkid.secured.IIIllllllI.llIIlIlIIl(line:17)
E/lIlIIIlIll.java:36@BaseCamera2Frame(32081): at com.microblink.blinkid.secured.lIlIIlIIll.llIIlIlIIl(line:2)
E/lIlIIIlIll.java:36@BaseCamera2Frame(32081): at com.microblink.blinkid.secured.IllIIlIIII.IllIIIllII(line:1)
E/lIlIIIlIll.java:36@BaseCamera2Frame(32081): at com.microblink.blinkid.view.recognition.IIlIIIllIl.onCameraFrame(line:98)
E/lIlIIIlIll.java:36@BaseCamera2Frame(32081): at com.microblink.blinkid.secured.IIllllllll.llIIlIlIIl(line:2)
E/lIlIIIlIll.java:36@BaseCamera2Frame(32081): at com.microblink.blinkid.secured.lIlIIlIlll.llIIlIlIIl(line:2)
E/lIlIIIlIll.java:36@BaseCamera2Frame(32081): at com.microblink.blinkid.secured.lIlIIlIlll.$r8$lambda$NH_DR0Y1NK3WQEtuijF83A4VUMo(Unknown Source:0)
E/lIlIIIlIll.java:36@BaseCamera2Frame(32081): at com.microblink.blinkid.secured.lIlIIlIlll$$ExternalSyntheticLambda0.run(Unknown Source:4)
E/lIlIIIlIll.java:36@BaseCamera2Frame(32081): at android.os.Handler.handleCallback(Handler.java:942)
E/lIlIIIlIll.java:36@BaseCamera2Frame(32081): at android.os.Handler.dispatchMessage(Handler.java:99)
E/lIlIIIlIll.java:36@BaseCamera2Frame(32081): at com.microblink.blinkid.secured.llIIIllIlI.dispatchMessage(line:1)
E/lIlIIIlIll.java:36@BaseCamera2Frame(32081): at android.os.Looper.loopOnce(Looper.java:201)
E/lIlIIIlIll.java:36@BaseCamera2Frame(32081): at android.os.Looper.loop(Looper.java:288)
E/lIlIIIlIll.java:36@BaseCamera2Frame(32081): at com.microblink.blinkid.secured.llllIIIIll.run(line:21)
D/VRI[BlinkIdActivity](32081): hardware acceleration = true, forceHwAccelerated = false
D/InputTransport(32081): Create ARC handle: 0xb40000735db13120
Hi @radivojeostojic
Thank you for testing out the sample application!
From what I can see from the provided logs, the issue might be with the camera management on the Android device. As we do not have that specific device, can you check on your end if the crash appears when you modify the UI settings with the following code:
BlinkIdUISettings settings = new BlinkIdUISettings(recognizerBundle);
OverlaySerializationUtils.extractCommonUISettings(jsonUISettings, settings);
settings.setCameraSettings(new CameraSettings.Builder()
.setForceLegacyApi(true)
.build());
This code needs to be placed in the native Java code in the following path in the sample application, below line 23: ...blinkid-flutter/BlinkID/android/src/main/java/com/microblink/blinkid/flutter/overlays/serialization/BlinkIdOverlaySettingsSerialization.java
You can also find it more easily if you're using Android Studio directly.
@mparadina This change appears to have resolved the issue. I'll incorporate this change into my code and continue to monitor its performance in production. Thank you for your assistance
@radivojeostojic glad to hear that the provided solution helped!
Even though it did help, we only recommend applying this camera API setting to certain devices with which you are experiencing this issue, as it can affect the overall SDK performance with devices that have the newer camera API implemented.
For future releases, we can expose this setting in the BlinkIdOverlaySettings
so that you can access it directly via Dart, without additionally modifying the native code.
I have been encountering frequent ANR (Application Not Responding) issues over the past several days on the Google Console:
plugin version: 6.1.2
Flutter doctor: