smstuebe / xamarin-fingerprint

Xamarin and MvvMCross plugin for authenticate a user via fingerprint sensor
Microsoft Public License
494 stars 118 forks source link

Crash on initialization when enabling LLVM on non-samsung armeabi-v7a devices #132

Open tranb3r opened 5 years ago

tranb3r commented 5 years ago

Steps to reproduce

  1. On android, enable AOT+LLVM build options (in .csproj) :

    <AotAssemblies>true</AotAssemblies>
    <EnableLLVM>true</EnableLLVM>
  2. Build apk for armeabi-v7a architecture.

  3. Launch app, on a non-samsung armeabi-v7a device.

Expected behavior

The application should start normally. Note : there is an exception when initializing Spass (This is not Samsung device), but it's properly catched (this is what happens on arm64-v8a devices).

Actual behavior

The "This is not Samsung device" exception is raised, but it does not seem to be catched. The application crashes immediately. No issue when disabling LLVM (but still using AOT). No issue on arm64-v8a devices.

Crashlog

05-23 18:12:57.395: E/mono-rt(20601): [ERROR] FATAL UNHANDLED EXCEPTION: Java.Lang.Exception: This is not Samsung device. 05-23 18:12:57.395: E/mono-rt(20601): at Java.Interop.JniEnvironment+InstanceMethods.CallVoidMethod (Java.Interop.JniObjectReference instance, Java.Interop.JniMethodInfo method, Java.Interop.JniArgumentValue args) [0x00069] in :0 05-23 18:12:57.395: E/mono-rt(20601): at Java.Interop.JniPeerMembers+JniInstanceMethods.InvokeVirtualVoidMethod (System.String encodedMember, Java.Interop.IJavaPeerable self, Java.Interop.JniArgumentValue parameters) <0x9890ca20 + 0x0008b> in :0 05-23 18:12:57.395: E/mono-rt(20601): at Com.Samsung.Android.Sdk.Pass.Spass.Initialize (Android.Content.Context p0) <0x9813a244 + 0x000b3> in :0 05-23 18:12:57.395: E/mono-rt(20601): --- End of managed Java.Lang.Exception stack trace --- 05-23 18:12:57.395: E/mono-rt(20601): com.samsung.android.sdk.SsdkUnsupportedException: This is not Samsung device. 05-23 18:12:57.395: E/mono-rt(20601): at com.samsung.android.sdk.pass.Spass.initialize() 05-23 18:12:57.395: E/mono-rt(20601): at md58432a647068b097f9637064b8985a5e0.MasterDetailPageRenderer.n_onAttachedToWindow(Native Method) 05-23 18:12:57.395: E/mono-rt(20601): at md58432a647068b097f9637064b8985a5e0.MasterDetailPageRenderer.onAttachedToWindow(:52) 05-23 18:12:57.395: E/mono-rt(20601): at android.view.View.dispatchAttachedToWindow(View.java:15398) 05-23 18:12:57.395: E/mono-rt(20601): at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2953) 05-23 18:12:57.395: E/mono-rt(20601): at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2960) 05-23 18:12:57.395: E/mono-rt(20601): at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2960) 05-23 18:12:57.395: E/mono-rt(20601): at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2960) 05-23 18:12:57.395: E/mono-rt(20601): at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2960) 05-23 18:12:57.395: E/mono-rt(20601): at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2960) 05-23 18:12:57.395: E/mono-rt(20601): at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2960) 05-23 18:12:57.395: E/mono-rt(20601): at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2960) 05-23 18:12:57.395: E/mono-rt(20601): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1516) 05-23 18:12:57.395: E/mono-rt(20601): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1246) 05-23 18:12:57.395: E/mono-rt(20601): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6307) 05-23 18:12:57.395: E/mono-rt(20601): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:871) 05-23 18:12:57.395: E/mono-rt(20601): at android.view.Choreographer.doCallbacks(Choreographer.java:683) 05-23 18:12:57.395: E/mono-rt(20601): at android.view.Choreographer.doFrame(Choreographer.java:619) 05-23 18:12:57.395: E/mono-rt(20601): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:857) 05-23 18:12:57.395: E/mono-rt(20601): at android.os.Handler.handleCallback(Handler.java:751) 05-23 18:12:57.395: E/mono-rt(20601): at android.os.Handler.dispatchMessage(Handler.java:95) 05-23 18:12:57.395: E/mono-rt(20601): at android.os.Looper.loop(Looper.java:154) 05-23 18:12:57.395: E/mono-rt(20601): at android.app.ActivityThread.main(ActivityThread.java:6077) 05-23 18:12:57.395: E/mono-rt(20601): at java.lang.reflect.Method.invoke(Native Method) 05-23 18:12:57.395: E/mono-rt(20601): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865) 05-23 18:12:57.395: E/mono-rt(20601): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)

Configuration

Version of the Plugin: 1.4.9

Platform: Android 7.0 or 7.1.1 (not tested on more recent versions)

Device: LG Nexus 4 ; Motorola Moto X 2014 ; probably all armeabi-v7a devices

NDK version: r19c

smsissuechecker commented 5 years ago

Hi @tranb3r,

I'm the friendly issue checker. Thanks for using the issue template :star2: I appreciate it very much. I'm sure, the maintainers of this repository will answer, soon.

tranb3r commented 5 years ago

Same issue when building with new ndk 20.0.5594570

melimion commented 5 years ago

Same issue

PieterIddink commented 5 years ago

same issue with latest version of VS 2019 mac (8.2.2 build 21)

tranb3r commented 5 years ago

xamarin/xamarin-android#3341 xamarin/xamarin-android#3480