smstuebe / xamarin-fingerprint

Xamarin and MvvMCross plugin for authenticate a user via fingerprint sensor

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Crash on Android - StandardFingerprintImplementation+<>c__DisplayClass0_0.<AuthenticateNoDialogAsync>b__0 ()

shadabtamboli opened this issue · comments

Getting random crashes on Android devices with below stack trace

Nuget package version: 1.4.9

Xamarin Exception Stack:
System.AggregateException: One or more errors occurred. (Cannot access a disposed object.
Object name: 'Android.OS.CancellationSignal'.)
at System.Threading.CancellationTokenSource.ExecuteCallbackHandlers (System.Boolean throwOnFirstException) [0x0012b] in <093b5acfe69b48d9a60902e759babaf1>:0
at System.Threading.CancellationTokenSource.NotifyCancellation (System.Boolean throwOnFirstException) [0x0004a] in <093b5acfe69b48d9a60902e759babaf1>:0
at System.Threading.CancellationTokenSource.Cancel (System.Boolean throwOnFirstException) [0x00006] in <093b5acfe69b48d9a60902e759babaf1>:0
at System.Threading.CancellationTokenSource.Cancel () [0x00000] in <093b5acfe69b48d9a60902e759babaf1>:0
at Plugin.Fingerprint.Dialog.FingerprintDialogFragment.OnPause () [0x00017] in <083a06095fb349618ead6dd5e0b3e06e>:0
at Android.App.Fragment.n_OnPause (System.IntPtr jnienv, System.IntPtr native__this) [0x00008] in :0
at (wrapper dynamic-method) Android.Runtime.DynamicMethodNameCounter.36(intptr,intptr)
--- End of inner exception stack trace ---
System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'Android.OS.CancellationSignal'.
at Java.Interop.JniPeerMembers.AssertSelf (Java.Interop.IJavaPeerable self) [0x00029] in <518325bc3556414a9844cefb2dd05ea0>:0
at Java.Interop.JniPeerMembers+JniInstanceMethods.InvokeAbstractVoidMethod (System.String encodedMember, Java.Interop.IJavaPeerable self, Java.Interop.JniArgumentValue* parameters) [0x00000] in <518325bc3556414a9844cefb2dd05ea0>:0
at Android.OS.CancellationSignal.Cancel () [0x0000a] in :0
at Plugin.Fingerprint.Standard.StandardFingerprintImplementation+<>c__DisplayClass0_0.b__0 () [0x00000] in <083a06095fb349618ead6dd5e0b3e06e>:0
at System.Threading.CancellationToken+<>c.<.cctor>b__26_0 (System.Object obj) [0x00000] in <093b5acfe69b48d9a60902e759babaf1>:0
at System.Threading.CancellationCallbackInfo.ExecutionContextCallback (System.Object obj) [0x00007] in <093b5acfe69b48d9a60902e759babaf1>:0
at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00071] in <093b5acfe69b48d9a60902e759babaf1>:0
at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <093b5acfe69b48d9a60902e759babaf1>:0
at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state) [0x0002b] in <093b5acfe69b48d9a60902e759babaf1>:0
at System.Threading.CancellationCallbackInfo.ExecuteCallback () [0x00024] in <093b5acfe69b48d9a60902e759babaf1>:0
at System.Threading.CancellationTokenSource.CancellationCallbackCoreWork (System.Threading.CancellationCallbackCoreWorkArguments args) [0x00035] in <093b5acfe69b48d9a60902e759babaf1>:0
at System.Threading.CancellationTokenSource.ExecuteCallbackHandlers (System.Boolean throwOnFirstException) [0x000b9] in <093b5acfe69b48d9a60902e759babaf1>:0

Thread 2:
0 dalvik.system.VMStack.getThreadStackTrace(VMStack.java:-2)
1 java.lang.Thread.getStackTrace(Thread.java:1720)
2 java.lang.Thread.getAllStackTraces(Thread.java:1796)
3 com.microsoft.appcenter.crashes.Crashes.saveUncaughtException(Crashes.java:949)
4 com.microsoft.appcenter.crashes.WrapperSdkExceptionManager.saveWrapperException(WrapperSdkExceptionManager.java:55)
5 crc64bdcb4704cc77bd30.FingerprintDialogFragment.n_onPause(FingerprintDialogFragment.java:-2)
6 crc64bdcb4704cc77bd30.FingerprintDialogFragment.onPause(FingerprintDialogFragment.java:52)
7 android.app.Fragment.performPause(Fragment.java:2735)
8 android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1358)
9 android.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1581)
10 android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1642)
11 android.app.FragmentManagerImpl.dispatchMoveToState(FragmentManager.java:3052)
12 android.app.FragmentManagerImpl.dispatchPause(FragmentManager.java:3018)
13 android.app.FragmentController.dispatchPause(FragmentController.java:217)
14 android.app.Activity.performPause(Activity.java:7994)
15 android.app.Instrumentation.callActivityOnPause(Instrumentation.java:1660)
16 android.app.ActivityThread.performPauseActivityIfNeeded(ActivityThread.java:4624)
17 android.app.ActivityThread.performPauseActivity(ActivityThread.java:4585)
18 android.app.ActivityThread.handlePauseActivity(ActivityThread.java:4537)
19 android.app.servertransaction.PauseActivityItem.execute(PauseActivityItem.java:46)
20 android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:176)
21 android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
22 android.app.ActivityThread$H.handleMessage(ActivityThread.java:2123)
23 android.os.Handler.dispatchMessage(Handler.java:107)
24 android.os.Looper.loop(Looper.java:214)
25 android.app.ActivityThread.main(ActivityThread.java:7710)
26 java.lang.reflect.Method.invoke(Method.java:-2)
27 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:516)
28 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)

Thread 13267:
0 java.lang.Object.wait(Object.java:-2)
1 java.lang.Object.wait(Object.java:442)
2 java.lang.Object.wait(Object.java:568)
3 java.lang.Daemons$ReferenceQueueDaemon.runInternal(Daemons.java:220)
4 java.lang.Daemons$Daemon.run(Daemons.java:142)
5 java.lang.Thread.run(Thread.java:919)

Thread 13268:
0 java.lang.Object.wait(Object.java:-2)
1 java.lang.Object.wait(Object.java:442)
2 java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:190)
3 java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:211)
4 java.lang.Daemons$FinalizerDaemon.runInternal(Daemons.java:276)
5 java.lang.Daemons$Daemon.run(Daemons.java:142)
6 java.lang.Thread.run(Thread.java:919)

Thread 13269:
0 java.lang.Thread.sleep(Thread.java:-2)
1 java.lang.Thread.sleep(Thread.java:440)
2 java.lang.Thread.sleep(Thread.java:356)
3 java.lang.Daemons$FinalizerWatchdogDaemon.sleepForMillis(Daemons.java:393)
4 java.lang.Daemons$FinalizerWatchdogDaemon.waitForFinalization(Daemons.java:440)
5 java.lang.Daemons$FinalizerWatchdogDaemon.runInternal(Daemons.java:328)
6 java.lang.Daemons$Daemon.run(Daemons.java:142)
7 java.lang.Thread.run(Thread.java:919)

Thread 13278:
0 android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
1 android.os.MessageQueue.next(MessageQueue.java:336)
2 android.os.Looper.loop(Looper.java:174)
3 android.os.HandlerThread.run(HandlerThread.java:67)

Thread 13288:
0 android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
1 android.os.MessageQueue.next(MessageQueue.java:336)
2 android.os.Looper.loop(Looper.java:174)
3 android.os.HandlerThread.run(HandlerThread.java:67)

Thread 13290:
0 android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
1 android.os.MessageQueue.next(MessageQueue.java:336)
2 android.os.Looper.loop(Looper.java:174)
3 android.os.HandlerThread.run(HandlerThread.java:67)

Thread 13292:
0 android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
1 android.os.MessageQueue.next(MessageQueue.java:336)
2 android.os.Looper.loop(Looper.java:174)
3 android.os.HandlerThread.run(HandlerThread.java:67)

Thread 13293:
0 sun.misc.Unsafe.park(Unsafe.java:-2)
1 java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
2 java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067)
3 java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1120)
4 java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:849)
5 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
6 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
7 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
8 java.lang.Thread.run(Thread.java:919)

Thread 13296:
0 sun.misc.Unsafe.park(Unsafe.java:-2)
1 java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
2 java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2109)
3 java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1132)
4 java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:849)
5 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
6 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
7 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
8 java.lang.Thread.run(Thread.java:919)

Hi @shadabtamboli,

I'm the friendly issue checker.
It seems like (100.00 %) you haven't used our issue template 😢 I think it is very frustrating for the repository owners, if you ignore them.

If you think it's fine to make an exception, just ignore this message.
But if you think it was a mistake to delete the template, please close the issue and create a new one.

Thanks!