Open alhappler opened 2 years ago
Hi @alhappler, can you provide flutter doctor -v
?
I tried to reproduce the issue on another device, the steps are different than yours.
1. Click on Authenticate button
2. Successfully detect face
3. Authorized and there is no authentication popup there and I can not click `cancel` as your step
So it'll be great if you could provide us a recorded video for this issue by a specific device.
Thanks.
@huycozy of course
The device blocks any form of screenrecord or screenshot so here is a crappy video:
Hi, thanks for the quick response. As far as I can see, you are using the old flutter version, the latest version now is 3.0.1
stable. Can you please upgrade SDK and then try again?
Hey, @huycozy I upgraded to 3.0.1, same result
Hi, I’m unable to reproduce the issue due to no similar device. I will keep this issue open for further investigation.
Hi, I am also facing similar issue in samsung devices. Please check the logs below I/BiometricPrompt(21832): onDialogDismissed: 2 W/Binder (21832): Caught a RuntimeException from the binder stub implementation. W/Binder (21832): java.lang.NullPointerException: Attempt to read from field 'java.util.concurrent.Executor android.hardware.biometrics.BiometricPrompt$ButtonInfo.executor' on a null object reference W/Binder (21832): at android.hardware.biometrics.BiometricPrompt$1.onDialogDismissed(BiometricPrompt.java:705) W/Binder (21832): at android.hardware.biometrics.IBiometricServiceReceiver$Stub.onTransact(IBiometricServiceReceiver.java:174)
Thanks
Hi, I am also facing similar issue in samsung devices. Please check the logs below I/BiometricPrompt(21832): onDialogDismissed: 2 W/Binder (21832): Caught a RuntimeException from the binder stub implementation. W/Binder (21832): java.lang.NullPointerException: Attempt to read from field 'java.util.concurrent.Executor android.hardware.biometrics.BiometricPrompt$ButtonInfo.executor' on a null object reference W/Binder (21832): at android.hardware.biometrics.BiometricPrompt$1.onDialogDismissed(BiometricPrompt.java:705) W/Binder (21832): at android.hardware.biometrics.IBiometricServiceReceiver$Stub.onTransact(IBiometricServiceReceiver.java:174)
Thanks
If we set biometricOnly as true that means disable pin, passcode or pattern, it is not crashing.
https://issuetracker.google.com/issues/211696108?pli=1
seems related issue.
temporary workaround.
set options sensitiveTransaction
to false
this will hide the confirm or cancel dialog and no need to give the user cancel options
final result = await _localAuthentication.authenticate(
localizedReason: reason,
options: const AuthenticationOptions(
sensitiveTransaction: false,
),
);
the method
authenticate
of local_auth crashes on Samsung SM F711B.Steps to Reproduce
(using example App of 2.10 )
authenticate
Expected Result
should not crash
Logs
Logs
``` I/BufferQueueProducer(28871): [SurfaceView - io.flutter.plugins.localauthexample/io.flutter.embedding.android.FlutterFragmentActivity@f50c179@0#1(BLAST Consumer)1](id:70c700000001,api:1,p:28871,c:28871) queueBuffer: queued for the first time. I/SurfaceView@f50c179(28871): uSP: rtp = Rect(0, 0 - 1080, 2496) rtsw = 1080 rtsh = 2496 I/SurfaceView@f50c179(28871): onSSPAndSRT: pl = 0 pt = 0 sx = 1.0 sy = 1.0 I/SurfaceView@f50c179(28871): aOrMT: uB = true t = android.view.SurfaceControl$Transaction@c012bda fN = 1 android.view.SurfaceView.access$500:124 android.view.SurfaceView$SurfaceViewPositionUpdateListener.positionChanged:1728 android.graphics.RenderNode$CompositePositionUpdateListener.positionChanged:319 I/SurfaceView@f50c179(28871): aOrMT: vR.mWNT, vR = ViewRootImpl@27c5ca5[FlutterFragmentActivity] I/ViewRootImpl@27c5ca5[FlutterFragmentActivity](28871): mWNT: t = android.view.SurfaceControl$Transaction@c012bda fN = 1 android.view.SurfaceView.applyOrMergeTransaction:1628 android.view.SurfaceView.access$500:124 android.view.SurfaceView$SurfaceViewPositionUpdateListener.positionChanged:1728 I/ViewRootImpl@27c5ca5[FlutterFragmentActivity](28871): mWNT: merge t to BBQ I/BufferQueueProducer(28871): [ViewRootImpl@27c5ca5[FlutterFragmentActivity]#0(BLAST Consumer)0](id:70c700000000,api:1,p:28871,c:28871) queueBuffer: queued for the first time. D/OpenGLRenderer(28871): GPIS:: SetUp Pid : 28871 Tid : 28899 I/ViewRootImpl@27c5ca5[FlutterFragmentActivity](28871): [DP] pdf(0) 1 android.view.ViewRootImpl.lambda$addFrameCompleteCallbackIfNeeded$3$ViewRootImpl:4969 android.view.ViewRootImpl$$ExternalSyntheticLambda16.run:6 android.os.Handler.handleCallback:938 I/ViewRootImpl@27c5ca5[FlutterFragmentActivity](28871): [DP] rdf() D/ViewRootImpl@27c5ca5[FlutterFragmentActivity](28871): reportDrawFinished (fn: -1) I/ViewRootImpl@27c5ca5[FlutterFragmentActivity](28871): MSG_WINDOW_FOCUS_CHANGED 1 1 D/InputMethodManager(28871): startInputInner - Id : 0 I/InputMethodManager(28871): startInputInner - mService.startInputOrWindowGainedFocus D/InputMethodManager(28871): startInputInner - Id : 0 I/ViewRootImpl@27c5ca5[FlutterFragmentActivity](28871): ViewPostIme pointer 0 I/ViewRootImpl@27c5ca5[FlutterFragmentActivity](28871): ViewPostIme pointer 1 I/ViewRootImpl@27c5ca5[FlutterFragmentActivity](28871): MSG_WINDOW_FOCUS_CHANGED 0 1 D/InputTransport(28871): Input channel destroyed: 'ClientS', fd=117 I/BiometricPrompt(28871): onDialogDismissed: 2 W/Binder (28871): Caught a RuntimeException from the binder stub implementation. W/Binder (28871): java.lang.NullPointerException: Attempt to read from field 'java.util.concurrent.Executor android.hardware.biometrics.BiometricPrompt$ButtonInfo.executor' on a null object reference W/Binder (28871): at android.hardware.biometrics.BiometricPrompt$1.onDialogDismissed(BiometricPrompt.java:705) W/Binder (28871): at android.hardware.biometrics.IBiometricServiceReceiver$Stub.onTransact(IBiometricServiceReceiver.java:174) W/Binder (28871): at android.os.Binder.execTransactInternal(Binder.java:1220) W/Binder (28871): at android.os.Binder.execTransact(Binder.java:1179) I/ViewRootImpl@27c5ca5[FlutterFragmentActivity](28871): MSG_WINDOW_FOCUS_CHANGED 1 1 D/InputMethodManager(28871): startInputInner - Id : 0 I/InputMethodManager(28871): startInputInner - mService.startInputOrWindowGainedFocus ```