xamarin / Xamarin.Forms

Xamarin.Forms is no longer supported. Migrate your apps to .NET MAUI.
https://aka.ms/xamarin-upgrade
Other
5.63k stars 1.87k forks source link

Migrating XamarinForms' Android project to SDK-style (.net6.0) results in `java.lang.IndexOutOfBoundsException: setSpan (-1 ... -1) starts before 0` #15646

Closed knocte closed 1 year ago

knocte commented 1 year ago

Android application type

Classic Xamarin.Android (MonoAndroid12.0, etc.)

Affected platform version

VS4Mac (.NET6.0)

Description

Full source code of Xamarin.Forms app (not migrated yet to .net6.0): https://github.com/nblockchain/geewallet/tree/frontend

After we tried to migrate the above to net6.0 (SDK style instead of net4.x-style project): https://github.com/nblockchain/geewallet/commits/wip/androidSdkStyle

Result when running the app in VS4Mac (stable channel) in emulator (Pixel 2 Pie 9.0 API 28):

[AndroidRuntime] Shutting down VM
[AndroidRuntime] FATAL EXCEPTION: main
[AndroidRuntime] Process: com.geewallet.android, PID: 8075
[AndroidRuntime] java.lang.IndexOutOfBoundsException: setSpan (-1 ... -1) starts before 0
[AndroidRuntime]    at android.text.SpannableStringBuilder.checkRange(SpannableStringBuilder.java:1326)

The exception happens when user is trying to manually insert characters in an Entry widget.

Steps to Reproduce

  1. Run the above wip/androidSdkStyle branch
  2. Click on a currency.
  3. Click on Send Payment
  4. Start inserting characters in the Address Entry.

Did you find any workaround?

No.

Relevant log output

Full log:

[AndroidRuntime] Shutting down VM
[AndroidRuntime] FATAL EXCEPTION: main
[AndroidRuntime] Process: com.geewallet.android, PID: 8075
[AndroidRuntime] java.lang.IndexOutOfBoundsException: setSpan (-1 ... -1) starts before 0
[AndroidRuntime]    at android.text.SpannableStringBuilder.checkRange(SpannableStringBuilder.java:1326)
[AndroidRuntime]    at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:682)
[AndroidRuntime]    at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:674)
[AndroidRuntime]    at android.text.Selection.setSelection(Selection.java:93)
[AndroidRuntime]    at android.text.Selection.setSelection(Selection.java:77)
[AndroidRuntime]    at android.text.method.ArrowKeyMovementMethod.onTouchEvent(ArrowKeyMovementMethod.java:273)
[AndroidRuntime]    at android.widget.TextView.onTouchEvent(TextView.java:10089)
[AndroidRuntime]    at android.view.View.dispatchTouchEvent(View.java:12513)
[AndroidRuntime]    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[AndroidRuntime]    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[AndroidRuntime]    at crc643f46942d9dd1fff9.VisualElementRenderer_1.n_dispatchTouchEvent(Native Method)
[AndroidRuntime]    at crc643f46942d9dd1fff9.VisualElementRenderer_1.dispatchTouchEvent(VisualElementRenderer_1.java:68)
[AndroidRuntime]    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[AndroidRuntime]    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[AndroidRuntime]    at crc643f46942d9dd1fff9.Platform_DefaultRenderer.n_dispatchTouchEvent(Native Method)
[AndroidRuntime]    at crc643f46942d9dd1fff9.Platform_DefaultRenderer.dispatchTouchEvent(Platform_DefaultRenderer.java:56)
[AndroidRuntime]    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[AndroidRuntime]    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[AndroidRuntime]    at crc643f46942d9dd1fff9.VisualElementRenderer_1.n_dispatchTouchEvent(Native Method)
[AndroidRuntime]    at crc643f46942d9dd1fff9.VisualElementRenderer_1.dispatchTouchEvent(VisualElementRenderer_1.java:68)
[AndroidRuntime]    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[AndroidRuntime]    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[AndroidRuntime]    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[AndroidRuntime]    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[AndroidRuntime]    at crc643f46942d9dd1fff9.VisualElementRenderer_1.n_dispatchTouchEvent(Native Method)
[AndroidRuntime]    at crc643f46942d9dd1fff9.VisualElementRenderer_1.dispatchTouchEvent(VisualElementRenderer_1.java:68)
[AndroidRuntime]    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[AndroidRuntime]    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[AndroidRuntime]    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[AndroidRuntime]    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[AndroidRuntime]    at crc643f46942d9dd1fff9.VisualElementRenderer_1.n_dispatchTouchEvent(Native Method)
[AndroidRuntime]    at crc643f46942d9dd1fff9.VisualElementRenderer_1.dispatchTouchEvent(VisualElementRenderer_1.java:68)
[AndroidRuntime]    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[AndroidRuntime]    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[AndroidRuntime]    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[AndroidRuntime]    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[AndroidRuntime]    at crc643f46942d9dd1fff9.VisualElementRenderer_1.n_dispatchTouchEvent(Native Method)
[AndroidRuntime]    at crc643f46942d9dd1fff9.VisualElementRenderer_1.dispatchTouchEvent(VisualElementRenderer_1.java:68)
[AndroidRuntime]    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[AndroidRuntime]    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[AndroidRuntime]    at crc643f46942d9dd1fff9.PlatformRenderer.n_dispatchTouchEvent(Native Method)
[AndroidRuntime]    at crc643f46942d9dd1fff9.PlatformRenderer.dispatchTouchEvent(PlatformRenderer.java:55)
[AndroidRuntime]    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[AndroidRuntime]    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[AndroidRuntime]    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[AndroidRuntime]    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[AndroidRuntime]    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[AndroidRuntime]    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[AndroidRuntime]    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[AndroidRuntime]    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[AndroidRuntime]    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[AndroidRuntime]    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[AndroidRuntime]    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[AndroidRuntime]    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[AndroidRuntime]    at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:440)
[AndroidRuntime]    at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1830)
[AndroidRuntime]    at android.app.Activity.dispatchTouchEvent(Activity.java:3400)
[AndroidRuntime]    at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69)
[AndroidRuntime]    at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69)
[AndroidRuntime]    at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:398)
[AndroidRuntime]    at android.view.View.dispatchPointerEvent(View.java:12752)
[AndroidRuntime]    at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:5106)
[AndroidRuntime]    at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4909)
[AndroidRuntime]    at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4426)
[AndroidRuntime]    at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4479)
[AndroidRuntime]    at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4445)
[AndroidRuntime]    at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4585)
[AndroidRuntime]    at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4453)
[AndroidRuntime]    at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4642)
[AndroidRuntime]    at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4426)
[AndroidRuntime]    at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4479)
[AndroidRuntime]    at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4445)
[AndroidRuntime]    at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4453)
[AndroidRuntime]    at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4426)
[AndroidRuntime]    at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:7092)
[AndroidRuntime]    at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:7061)
[AndroidRuntime]    at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:7022)
[AndroidRuntime]    at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:7195)
[AndroidRuntime]    at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:186)
[AndroidRuntime]    at android.view.InputEventReceiver.nativeConsumeBatchedInputEvents(Native Method)
[AndroidRuntime]    at android.view.InputEventReceiver.consumeBatchedInputEvents(InputEventReceiver.java:177)
[AndroidRuntime]    at android.view.ViewRootImpl.doConsumeBatchedInput(ViewRootImpl.java:7166)
[AndroidRuntime]    at android.view.ViewRootImpl$ConsumeBatchedInputRunnable.run(ViewRootImpl.java:7218)
[AndroidRuntime]    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:949)
[AndroidRuntime]    at android.view.Choreographer.doCallbacks(Choreographer.java:761)
[AndroidRuntime]    at android.view.Choreographer.doFrame(Choreographer.java:690)
[AndroidRuntime]    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:935)
[AndroidRuntime]    at android.os.Handler.handleCallback(Handler.java:873)
[AndroidRuntime]    at android.os.Handler.dispatchMessage(Handler.java:99)
[AndroidRuntime]    at android.os.Looper.loop(Looper.java:193)
[AndroidRuntime]    at android.app.ActivityThread.main(ActivityThread.java:6669)
[AndroidRuntime]    at java.lang.reflect.Method.invoke(Native Method)
[AndroidRuntime]    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
[AndroidRuntime]    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
[MonoDroid] UNHANDLED EXCEPTION:
[MonoDroid] Java.Lang.IndexOutOfBoundsException: setSpan (-1 ... -1) starts before 0
[MonoDroid]    at Java.Interop.JniEnvironment.InstanceMethods.CallNonvirtualBooleanMethod(JniObjectReference instance, JniObjectReference type, JniMethodInfo method, JniArgumentValue* args)
[MonoDroid]    at Java.Interop.JniPeerMembers.JniInstanceMethods.InvokeVirtualBooleanMethod(String encodedMember, IJavaPeerable self, JniArgumentValue* parameters)
[MonoDroid]    at Android.Views.View.DispatchTouchEvent(MotionEvent e)
[MonoDroid]    at Xamarin.Forms.Platform.Android.VisualElementRenderer`1[[Xamarin.Forms.Entry, Xamarin.Forms.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null]].DispatchTouchEvent(MotionEvent e)
[MonoDroid]    at Android.Views.View.n_DispatchTouchEvent_Landroid_view_MotionEvent_(IntPtr jnienv, IntPtr native__this, IntPtr native_e)
[MonoDroid]    at Android.Runtime.JNINativeWrapper.Wrap_JniMarshal_PPL_Z(_JniMarshal_PPL_Z callback, IntPtr jnienv, IntPtr klazz, IntPtr p0)
[MonoDroid] --- End of stack trace from previous location ---
[MonoDroid]    at Java.Interop.JniEnvironment.InstanceMethods.CallNonvirtualBooleanMethod(JniObjectReference instance, JniObjectReference type, JniMethodInfo method, JniArgumentValue* args)
[MonoDroid]    at Java.Interop.JniPeerMembers.JniInstanceMethods.InvokeVirtualBooleanMethod(String encodedMember, IJavaPeerable self, JniArgumentValue* parameters)
[MonoDroid]    at Android.Views.View.DispatchTouchEvent(MotionEvent e)
[MonoDroid]    at Xamarin.Forms.Platform.Android.VisualElementRenderer`1[[Xamarin.Forms.View, Xamarin.Forms.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null]].DispatchTouchEvent(MotionEvent e)
[MonoDroid]    at Xamarin.Forms.Platform.Android.Platform.DefaultRenderer.DispatchTouchEvent(MotionEvent e)
[MonoDroid]    at Android.Views.View.n_DispatchTouchEvent_Landroid_view_MotionEvent_(IntPtr jnienv, IntPtr native__this, IntPtr native_e)
[MonoDroid]    at Android.Runtime.JNINativeWrapper.Wrap_JniMarshal_PPL_Z(_JniMarshal_PPL_Z callback, IntPtr jnienv, IntPtr klazz, IntPtr p0)
[MonoDroid] --- End of stack trace from previous location ---
[MonoDroid]    at Java.Interop.JniEnvironment.InstanceMethods.CallNonvirtualBooleanMethod(JniObjectReference instance, JniObjectReference type, JniMethodInfo method, JniArgumentValue* args)
[MonoDroid]    at Java.Interop.JniPeerMembers.JniInstanceMethods.InvokeVirtualBooleanMethod(String encodedMember, IJavaPeerable self, JniArgumentValue* parameters)
[MonoDroid]    at Android.Views.View.DispatchTouchEvent(MotionEvent e)
[MonoDroid]    at Xamarin.Forms.Platform.Android.VisualElementRenderer`1[[Xamarin.Forms.Page, Xamarin.Forms.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null]].DispatchTouchEvent(MotionEvent e)
[MonoDroid]    at Android.Views.View.n_DispatchTouchEvent_Landroid_view_MotionEvent_(IntPtr jnienv, IntPtr native__this, IntPtr native_e)
[MonoDroid]    at Android.Runtime.JNINativeWrapper.Wrap_JniMarshal_PPL_Z(_JniMarshal_PPL_Z callback, IntPtr jnienv, IntPtr klazz, IntPtr p0)
[MonoDroid] --- End of stack trace from previous location ---
[MonoDroid]    at Java.Interop.JniEnvironment.InstanceMethods.CallNonvirtualBooleanMethod(JniObjectReference instance, JniObjectReference type, JniMethodInfo method, JniArgumentValue* args)
[MonoDroid]    at Java.Interop.JniPeerMembers.JniInstanceMethods.InvokeVirtualBooleanMethod(String encodedMember, IJavaPeerable self, JniArgumentValue* parameters)
[MonoDroid]    at Android.Views.View.DispatchTouchEvent(MotionEvent e)
[MonoDroid]    at Xamarin.Forms.Platform.Android.VisualElementRenderer`1[[Xamarin.Forms.NavigationPage, Xamarin.Forms.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null]].DispatchTouchEvent(MotionEvent e)
[MonoDroid]    at Android.Views.View.n_DispatchTouchEvent_Landroid_view_MotionEvent_(IntPtr jnienv, IntPtr native__this, IntPtr native_e)
[MonoDroid]    at Android.Runtime.JNINativeWrapper.Wrap_JniMarshal_PPL_Z(_JniMarshal_PPL_Z callback, IntPtr jnienv, IntPtr klazz, IntPtr p0)
[MonoDroid] --- End of stack trace from previous location ---
[MonoDroid]    at Java.Interop.JniEnvironment.InstanceMethods.CallNonvirtualBooleanMethod(JniObjectReference instance, JniObjectReference type, JniMethodInfo method, JniArgumentValue* args)
[MonoDroid]    at Java.Interop.JniPeerMembers.JniInstanceMethods.InvokeVirtualBooleanMethod(String encodedMember, IJavaPeerable self, JniArgumentValue* parameters)
[MonoDroid]    at Android.Views.View.DispatchTouchEvent(MotionEvent e)
[MonoDroid]    at Xamarin.Forms.Platform.Android.VisualElementRenderer`1[[Xamarin.Forms.NavigationPage, Xamarin.Forms.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null]].DispatchTouchEvent(MotionEvent e)
[MonoDroid]    at Android.Views.View.n_DispatchTouchEvent_Landroid_view_MotionEvent_(IntPtr jnienv, IntPtr native__this, IntPtr native_e)
[MonoDroid]    at Android.Runtime.JNINativeWrapper.Wrap_JniMarshal_PPL_Z(_JniMarshal_PPL_Z callback, IntPtr jnienv, IntPtr klazz, IntPtr p0)
[MonoDroid] --- End of stack trace from previous location ---
[MonoDroid]    at Java.Interop.JniEnvironment.InstanceMethods.CallNonvirtualBooleanMethod(JniObjectReference instance, JniObjectReference type, JniMethodInfo method, JniArgumentValue* args)
[MonoDroid]    at Java.Interop.JniPeerMembers.JniInstanceMethods.InvokeVirtualBooleanMethod(String encodedMember, IJavaPeerable self, JniArgumentValue* parameters)
[MonoDroid]    at Android.Views.View.DispatchTouchEvent(MotionEvent e)
[MonoDroid]    at Xamarin.Forms.Platform.Android.VisualElementRenderer`1[[Xamarin.Forms.NavigationPage, Xamarin.Forms.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null]].DispatchTouchEvent(MotionEvent e)
[MonoDroid]    at Android.Views.View.n_DispatchTouchEvent_Landroid_view_MotionEvent_(IntPtr jnienv, IntPtr native__this, IntPtr native_e)
[MonoDroid]    at Android.Runtime.JNINativeWrapper.Wrap_JniMarshal_PPL_Z(_JniMarshal_PPL_Z callback, IntPtr jnienv, IntPtr klazz, IntPtr p0)
[MonoDroid] --- End of stack trace from previous location ---
[MonoDroid]    at Java.Interop.JniEnvironment.InstanceMethods.CallNonvirtualBooleanMethod(JniObjectReference instance, JniObjectReference type, JniMethodInfo method, JniArgumentValue* args)
[MonoDroid]    at Java.Interop.JniPeerMembers.JniInstanceMethods.InvokeVirtualBooleanMethod(String encodedMember, IJavaPeerable self, JniArgumentValue* parameters)
[MonoDroid]    at Android.Views.View.DispatchTouchEvent(MotionEvent e)
[MonoDroid]    at Xamarin.Forms.Platform.Android.PlatformRenderer.DispatchTouchEvent(MotionEvent e)
[MonoDroid]    at Android.Views.View.n_DispatchTouchEvent_Landroid_view_MotionEvent_(IntPtr jnienv, IntPtr native__this, IntPtr native_e)
[MonoDroid]    at Android.Runtime.JNINativeWrapper.Wrap_JniMarshal_PPL_Z(_JniMarshal_PPL_Z callback, IntPtr jnienv, IntPtr klazz, IntPtr p0)
[MonoDroid]   --- End of managed Java.Lang.IndexOutOfBoundsException stack trace ---
[MonoDroid] java.lang.IndexOutOfBoundsException: setSpan (-1 ... -1) starts before 0
[MonoDroid]     at android.text.SpannableStringBuilder.checkRange(SpannableStringBuilder.java:1326)
[MonoDroid]     at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:682)
[MonoDroid]     at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:674)
[MonoDroid]     at android.text.Selection.setSelection(Selection.java:93)
[MonoDroid]     at android.text.Selection.setSelection(Selection.java:77)
[MonoDroid]     at android.text.method.ArrowKeyMovementMethod.onTouchEvent(ArrowKeyMovementMethod.java:273)
[MonoDroid]     at android.widget.TextView.onTouchEvent(TextView.java:10089)
[MonoDroid]     at android.view.View.dispatchTouchEvent(View.java:12513)
[MonoDroid]     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[MonoDroid]     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[MonoDroid]     at crc643f46942d9dd1fff9.VisualElementRenderer_1.n_dispatchTouchEvent(Native Method)
[MonoDroid]     at crc643f46942d9dd1fff9.VisualElementRenderer_1.dispatchTouchEvent(VisualElementRenderer_1.java:68)
[MonoDroid]     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[MonoDroid]     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[MonoDroid]     at crc643f46942d9dd1fff9.Platform_DefaultRenderer.n_dispatchTouchEvent(Native Method)
[MonoDroid]     at crc643f46942d9dd1fff9.Platform_DefaultRenderer.dispatchTouchEvent(Platform_DefaultRenderer.java:56)
[MonoDroid]     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[MonoDroid]     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[MonoDroid]     at crc643f46942d9dd1fff9.VisualElementRenderer_1.n_dispatchTouchEvent(Native Method)
[MonoDroid]     at crc643f46942d9dd1fff9.VisualElementRenderer_1.dispatchTouchEvent(VisualElementRenderer_1.java:68)
[MonoDroid]     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[MonoDroid]     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[MonoDroid]     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[MonoDroid]     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[MonoDroid]     at crc643f46942d9dd1fff9.VisualElementRenderer_1.n_dispatchTouchEvent(Native Method)
[MonoDroid]     at crc643f46942d9dd1fff9.VisualElementRenderer_1.dispatchTouchEvent(VisualElementRenderer_1.java:68)
[MonoDroid]     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[MonoDroid]     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[MonoDroid]     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[MonoDroid]     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[MonoDroid]     at crc643f46942d9dd1fff9.VisualElementRenderer_1.n_dispatchTouchEvent(Native Method)
[MonoDroid]     at crc643f46942d9dd1fff9.VisualElementRenderer_1.dispatchTouchEvent(VisualElementRenderer_1.java:68)
[MonoDroid]     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[MonoDroid]     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[MonoDroid]     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[MonoDroid]     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[MonoDroid]     at crc643f46942d9dd1fff9.VisualElementRenderer_1.n_dispatchTouchEvent(Native Method)
[MonoDroid]     at crc643f46942d9dd1fff9.VisualElementRenderer_1.dispatchTouchEvent(VisualElementRenderer_1.java:68)
[MonoDroid]     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[MonoDroid]     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[MonoDroid]     at crc643f46942d9dd1fff9.PlatformRenderer.n_dispatchTouchEvent(Native Method)
[MonoDroid]     at crc643f46942d9dd1fff9.PlatformRenderer.dispatchTouchEvent(PlatformRenderer.java:55)
[MonoDroid]     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[MonoDroid]     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[MonoDroid]     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[MonoDroid]     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[MonoDroid]     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[MonoDroid]     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[MonoDroid]     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[MonoDroid]     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[MonoDroid]     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[MonoDroid]     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[MonoDroid]     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[MonoDroid]     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[MonoDroid]     at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:440)
[MonoDroid]     at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1830)
[MonoDroid]     at android.app.Activity.dispatchTouchEvent(Activity.java:3400)
[MonoDroid]     at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69)
[MonoDroid]     at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69)
[MonoDroid]     at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:398)
[MonoDroid]     at android.view.View.dispatchPointerEvent(View.java:12752)
[MonoDroid]     at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:5106)
[MonoDroid]     at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4909)
[MonoDroid]     at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4426)
[MonoDroid]     at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4479)
[MonoDroid]     at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4445)
[MonoDroid]     at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4585)
[MonoDroid]     at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4453)
[MonoDroid]     at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4642)
[MonoDroid]     at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4426)
[MonoDroid]     at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4479)
[MonoDroid]     at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4445)
[MonoDroid]     at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4453)
[MonoDroid]     at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4426)
[MonoDroid]     at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:7092)
[MonoDroid]     at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:7061)
[MonoDroid]     at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:7022)
[MonoDroid]     at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:7195)
[MonoDroid]     at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:186)
[MonoDroid]     at android.view.InputEventReceiver.nativeConsumeBatchedInputEvents(Native Method)
[MonoDroid]     at android.view.InputEventReceiver.consumeBatchedInputEvents(InputEventReceiver.java:177)
[MonoDroid]     at android.view.ViewRootImpl.doConsumeBatchedInput(ViewRootImpl.java:7166)
[MonoDroid]     at android.view.ViewRootImpl$ConsumeBatchedInputRunnable.run(ViewRootImpl.java:7218)
[MonoDroid]     at android.view.Choreographer$CallbackRecord.run(Choreographer.java:949)
[MonoDroid]     at android.view.Choreographer.doCallbacks(Choreographer.java:761)
[MonoDroid]     at android.view.Choreographer.doFrame(Choreographer.java:690)
[MonoDroid]     at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:935)
[MonoDroid]     at android.os.Handler.handleCallback(Handler.java:873)
[MonoDroid]     at android.os.Handler.dispatchMessage(Handler.java:99)
[MonoDroid]     at android.os.Looper.loop(Looper.java:193)
[MonoDroid]     at android.app.ActivityThread.main(ActivityThread.java:6669)
[MonoDroid]     at java.lang.reflect.Method.invoke(Native Method)
[MonoDroid]     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
[MonoDroid]     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
[MonoDroid] 
[MonoDroid]   --- End of managed Java.Lang.IndexOutOfBoundsException stack trace ---
[MonoDroid] java.lang.IndexOutOfBoundsException: setSpan (-1 ... -1) starts before 0
[MonoDroid]     at android.text.SpannableStringBuilder.checkRange(SpannableStringBuilder.java:1326)
[MonoDroid]     at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:682)
[MonoDroid]     at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:674)
[MonoDroid]     at android.text.Selection.setSelection(Selection.java:93)
[MonoDroid]     at android.text.Selection.setSelection(Selection.java:77)
[MonoDroid]     at android.text.method.ArrowKeyMovementMethod.onTouchEvent(ArrowKeyMovementMethod.java:273)
[MonoDroid]     at android.widget.TextView.onTouchEvent(TextView.java:10089)
[MonoDroid]     at android.view.View.dispatchTouchEvent(View.java:12513)
[MonoDroid]     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[MonoDroid]     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[MonoDroid]     at crc643f46942d9dd1fff9.VisualElementRenderer_1.n_dispatchTouchEvent(Native Method)
[MonoDroid]     at crc643f46942d9dd1fff9.VisualElementRenderer_1.dispatchTouchEvent(VisualElementRenderer_1.java:68)
[MonoDroid]     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[MonoDroid]     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[MonoDroid]     at crc643f46942d9dd1fff9.Platform_DefaultRenderer.n_dispatchTouchEvent(Native Method)
[MonoDroid]     at crc643f46942d9dd1fff9.Platform_DefaultRenderer.dispatchTouchEvent(Platform_DefaultRenderer.java:56)
[MonoDroid]     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[MonoDroid]     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[MonoDroid]     at crc643f46942d9dd1fff9.VisualElementRenderer_1.n_dispatchTouchEvent(Native Method)
[MonoDroid]     at crc643f46942d9dd1fff9.VisualElementRenderer_1.dispatchTouchEvent(VisualElementRenderer_1.java:68)
[MonoDroid]     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[MonoDroid]     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[MonoDroid]     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[MonoDroid]     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[MonoDroid]     at crc643f46942d9dd1fff9.VisualElementRenderer_1.n_dispatchTouchEvent(Native Method)
[MonoDroid]     at crc643f46942d9dd1fff9.VisualElementRenderer_1.dispatchTouchEvent(VisualElementRenderer_1.java:68)
[MonoDroid]     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[MonoDroid]     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[MonoDroid]     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[MonoDroid]     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[MonoDroid]     at crc643f46942d9dd1fff9.VisualElementRenderer_1.n_dispatchTouchEvent(Native Method)
[MonoDroid]     at crc643f46942d9dd1fff9.VisualElementRenderer_1.dispatchTouchEvent(VisualElementRenderer_1.java:68)
[MonoDroid]     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[MonoDroid]     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[MonoDroid]     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[MonoDroid]     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[MonoDroid]     at crc643f46942d9dd1fff9.VisualElementRenderer_1.n_dispatchTouchEvent(Native Method)
[MonoDroid]     at crc643f46942d9dd1fff9.VisualElementRenderer_1.dispatchTouchEvent(VisualElementRenderer_1.java:68)
[MonoDroid]     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[MonoDroid]     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[MonoDroid]     at crc643f46942d9dd1fff9.PlatformRenderer.n_dispatchTouchEvent(Native Method)
[MonoDroid]     at crc643f46942d9dd1fff9.PlatformRenderer.dispatchTouchEvent(PlatformRenderer.java:55)
[MonoDroid]     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[MonoDroid]     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[MonoDroid]     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[MonoDroid]     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[MonoDroid]     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[MonoDroid]     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[MonoDroid]     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[MonoDroid]     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[MonoDroid]     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[MonoDroid]     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[MonoDroid]     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[MonoDroid]     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[MonoDroid]     at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:440)
[MonoDroid]     at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1830)
[MonoDroid]     at android.app.Activity.dispatchTouchEvent(Activity.java:3400)
[MonoDroid]     at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69)
[MonoDroid]     at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69)
[MonoDroid]     at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:398)
[MonoDroid]     at android.view.View.dispatchPointerEvent(View.java:12752)
[MonoDroid]     at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:5106)
[MonoDroid]     at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4909)
[MonoDroid]     at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4426)
[MonoDroid]     at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4479)
[MonoDroid]     at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4445)
[MonoDroid]     at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4585)
[MonoDroid]     at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4453)
[MonoDroid]     at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4642)
[MonoDroid]     at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4426)
[MonoDroid]     at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4479)
[MonoDroid]     at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4445)
[MonoDroid]     at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4453)
[MonoDroid]     at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4426)
[MonoDroid]     at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:7092)
[MonoDroid]     at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:7061)
[MonoDroid]     at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:7022)
[MonoDroid]     at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:7195)
[MonoDroid]     at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:186)
[MonoDroid]     at android.view.InputEventReceiver.nativeConsumeBatchedInputEvents(Native Method)
[MonoDroid]     at android.view.InputEventReceiver.consumeBatchedInputEvents(InputEventReceiver.java:177)
[MonoDroid]     at android.view.ViewRootImpl.doConsumeBatchedInput(ViewRootImpl.java:7166)
[MonoDroid]     at android.view.ViewRootImpl$ConsumeBatchedInputRunnable.run(ViewRootImpl.java:7218)
[MonoDroid]     at android.view.Choreographer$CallbackRecord.run(Choreographer.java:949)
[MonoDroid]     at android.view.Choreographer.doCallbacks(Choreographer.java:761)
[MonoDroid]     at android.view.Choreographer.doFrame(Choreographer.java:690)
[MonoDroid]     at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:935)
[MonoDroid]     at android.os.Handler.handleCallback(Handler.java:873)
[MonoDroid]     at android.os.Handler.dispatchMessage(Handler.java:99)
[MonoDroid]     at android.os.Looper.loop(Looper.java:193)
[MonoDroid]     at android.app.ActivityThread.main(ActivityThread.java:6669)
[MonoDroid]     at java.lang.reflect.Method.invoke(Native Method)
[MonoDroid]     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
[MonoDroid]     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
[MonoDroid] 
[monodroid-assembly] open_from_bundles: failed to load assembly SharpRaven.dll
[monodroid-assembly] Shared library 'liblog' not loaded, p/invoke '__android_log_print' may fail
[DOTNET] Java.Lang.IndexOutOfBoundsException: setSpan (-1 ... -1) starts before 0
[DOTNET]    at Java.Interop.JniEnvironment.InstanceMethods.CallNonvirtualBooleanMethod(JniObjectReference instance, JniObjectReference type, JniMethodInfo method, JniArgumentValue* args)
[DOTNET]    at Java.Interop.JniPeerMembers.JniInstanceMethods.InvokeVirtualBooleanMethod(String encodedMember, IJavaPeerable self, JniArgumentValue* parameters)
[DOTNET]    at Android.Views.View.DispatchTouchEvent(MotionEvent e)
[DOTNET]    at Xamarin.Forms.Platform.Android.VisualElementRenderer`1[[Xamarin.Forms.Entry, Xamarin.Forms.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null]].DispatchTouchEvent(MotionEvent e)
[DOTNET]    at Android.Views.View.n_DispatchTouchEvent_Landroid_view_MotionEvent_(IntPtr jnienv, IntPtr native__this, IntPtr native_e)
[DOTNET]    at Android.Runtime.JNINativeWrapper.Wrap_JniMarshal_PPL_Z(_JniMarshal_PPL_Z callback, IntPtr jnienv, IntPtr klazz, IntPtr p0)
[DOTNET] --- End of stack trace from previous location ---
[DOTNET]    at Java.Interop.JniEnvironment.InstanceMethods.CallNonvirtualBooleanMethod(JniObjectReference instance, JniObjectReference type, JniMethodInfo method, JniArgumentValue* args)
[DOTNET]    at Java.Interop.JniPeerMembers.JniInstanceMethods.InvokeVirtualBooleanMethod(String encodedMember, IJavaPeerable self, JniArgumentValue* parameters)
[DOTNET]    at Android.Views.View.DispatchTouchEvent(MotionEvent e)
[DOTNET]    at Xamarin.Forms.Platform.Android.VisualElementRenderer`1[[Xamarin.Forms.View, Xamarin.Forms.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null]].DispatchTouchEvent(MotionEvent e)
[DOTNET]    at Xamarin.Forms.Platform.Android.Platform.DefaultRenderer.DispatchTouchEvent(MotionEvent e)
[DOTNET]    at Android.Views.View.n_DispatchTouchEvent_Landroid_view_MotionEvent_(IntPtr jnienv, IntPtr native__this, IntPtr native_e)
[DOTNET]    at Android.Runtime.JNINativeWrapper.Wrap_JniMarshal_PPL_Z(_JniMarshal_PPL_Z callback, IntPtr jnienv, IntPtr klazz, IntPtr p0)
[DOTNET] --- End of stack trace from previous location ---
[DOTNET]    at Java.Interop.JniEnvironment.InstanceMethods.CallNonvirtualBooleanMethod(JniObjectReference instance, JniObjectReference type, JniMethodInfo method, JniArgumentValue* args)
[DOTNET]    at Java.Interop.JniPeerMembers.JniInstanceMethods.InvokeVirtualBooleanMethod(String encodedMember, IJavaPeerable self, JniArgumentValue* parameters)
[DOTNET]    at Android.Views.View.DispatchTouchEvent(MotionEvent e)
[DOTNET]    at Xamarin.Forms.Platform.Android.VisualElementRenderer`1[[Xamarin.Forms.Page, Xamarin.Forms.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null]].DispatchTouchEvent(MotionEvent e)
[DOTNET]    at Android.Views.View.n_DispatchTouchEvent_Landroid_view_MotionEvent_(IntPtr jnienv, IntPtr native__this, IntPtr native_e)
[DOTNET]    at Android.Runtime.JNINativeWrapper.Wrap_JniMarshal_PPL_Z(_JniMarshal_PPL_Z callback, IntPtr jnienv, IntPtr klazz, IntPtr p0)
[DOTNET] --- End of stack trace from previous location ---
[DOTNET]    at Java.Interop.JniEnvironment.InstanceMethods.CallNonvirtualBooleanMethod(JniObjectReference instance, JniObjectReference type, JniMethodInfo method, JniArgumentValue* args)
[DOTNET]    at Java.Interop.JniPeerMembers.JniInstanceMethods.InvokeVirtualBooleanMethod(String encodedMember, IJavaPeerable self, JniArgumentValue* parameters)
[DOTNET]    at Android.Views.View.DispatchTouchEvent(MotionEvent e)
[DOTNET]    at Xamarin.Forms.Platform.Android.VisualElementRenderer`1[[Xamarin.Forms.NavigationPage, Xamarin.Forms.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null]].DispatchTouchEvent(MotionEvent e)
[DOTNET]    at Android.Views.View.n_DispatchTouchEvent_Landroid_view_MotionEvent_(IntPtr jnienv, IntPtr native__this, IntPtr native_e)
[DOTNET]    at Android.Runtime.JNINativeWrapper.Wrap_JniMarshal_PPL_Z(_JniMarshal_PPL_Z callback, IntPtr jnienv, IntPtr klazz, IntPtr p0)
[DOTNET] --- End of stack trace from previous location ---
[DOTNET]    at Java.Interop.JniEnvironment.InstanceMethods.CallNonvirtualBooleanMethod(JniObjectReference instance, JniObjectReference type, JniMethodInfo method, JniArgumentValue* args)
[DOTNET]    at Java.Interop.JniPeerMembers.JniInstanceMethods.InvokeVirtualBooleanMethod(String encodedMember, IJavaPeerable self, JniArgumentValue* parameters)
[DOTNET]    at Android.Views.View.DispatchTouchEvent(MotionEvent e)
[DOTNET]    at Xamarin.Forms.Platform.Android.VisualElementRenderer`1[[Xamarin.Forms.NavigationPage, Xamarin.Forms.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null]].DispatchTouchEvent(MotionEvent e)
[DOTNET]    at Android.Views.View.n_DispatchTouchEvent_Landroid_view_MotionEvent_(IntPtr jnienv, IntPtr native__this, IntPtr native_e)
[DOTNET]    at Android.Runtime.JNINativeWrapper.Wrap_JniMarshal_PPL_Z(_JniMarshal_PPL_Z callback, IntPtr jnienv, IntPtr klazz, IntPtr p0)
[DOTNET] --- End of stack trace from previous location ---
[DOTNET]    at Java.Interop.JniEnvironment.InstanceMethods.CallNonvirtualBooleanMethod(JniObjectReference instance, JniObjectReference type, JniMethodInfo method, JniArgumentValue* args)
[DOTNET]    at Java.Interop.JniPeerMembers.JniInstanceMethods.InvokeVirtualBooleanMethod(String encodedMember, IJavaPeerable self, JniArgumentValue* parameters)
[DOTNET]    at Android.Views.View.DispatchTouchEvent(MotionEvent e)
[DOTNET]    at Xamarin.Forms.Platform.Android.VisualElementRenderer`1[[Xamarin.Forms.NavigationPage, Xamarin.Forms.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null]].DispatchTouchEvent(MotionEvent e)
[DOTNET]    at Android.Views.View.n_DispatchTouchEvent_Landroid_view_MotionEvent_(IntPtr jnienv, IntPtr native__this, IntPtr native_e)
[DOTNET]    at Android.Runtime.JNINativeWrapper.Wrap_JniMarshal_PPL_Z(_JniMarshal_PPL_Z callback, IntPtr jnienv, IntPtr klazz, IntPtr p0)
[DOTNET] --- End of stack trace from previous location ---
[DOTNET]    at Java.Interop.JniEnvironment.InstanceMethods.CallNonvirtualBooleanMethod(JniObjectReference instance, JniObjectReference type, JniMethodInfo method, JniArgumentValue* args)
[DOTNET]    at Java.Interop.JniPeerMembers.JniInstanceMethods.InvokeVirtualBooleanMethod(String encodedMember, IJavaPeerable self, JniArgumentValue* parameters)
[DOTNET]    at Android.Views.View.DispatchTouchEvent(MotionEvent e)
[DOTNET]    at Xamarin.Forms.Platform.Android.PlatformRenderer.DispatchTouchEvent(MotionEvent e)
[DOTNET]    at Android.Views.View.n_DispatchTouchEvent_Landroid_view_MotionEvent_(IntPtr jnienv, IntPtr native__this, IntPtr native_e)
[DOTNET]    at Android.Runtime.JNINativeWrapper.Wrap_JniMarshal_PPL_Z(_JniMarshal_PPL_Z callback, IntPtr jnienv, IntPtr klazz, IntPtr p0)
[DOTNET]   --- End of managed Java.Lang.IndexOutOfBoundsException stack trace ---
[DOTNET] java.lang.IndexOutOfBoundsException: setSpan (-1 ... -1) starts before 0
[DOTNET]    at android.text.SpannableStringBuilder.checkRange(SpannableStringBuilder.java:1326)
[DOTNET]    at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:682)
[DOTNET]    at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:674)
[DOTNET]    at android.text.Selection.setSelection(Selection.java:93)
[DOTNET]    at android.text.Selection.setSelection(Selection.java:77)
[DOTNET]    at android.text.method.ArrowKeyMovementMethod.onTouchEvent(ArrowKeyMovementMethod.java:273)
[DOTNET]    at android.widget.TextView.onTouchEvent(TextView.java:10089)
[DOTNET]    at android.view.View.dispatchTouchEvent(View.java:12513)
[DOTNET]    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[DOTNET]    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[DOTNET]    at crc643f46942d9dd1fff9.VisualElementRenderer_1.n_dispatchTouchEvent(Native Method)
[DOTNET]    at crc643f46942d9dd1fff9.VisualElementRenderer_1.dispatchTouchEvent(VisualElementRenderer_1.java:68)
[DOTNET]    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[DOTNET]    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[DOTNET]    at crc643f46942d9dd1fff9.Platform_DefaultRenderer.n_dispatchTouchEvent(Native Method)
[DOTNET]    at crc643f46942d9dd1fff9.Platform_DefaultRenderer.dispatchTouchEvent(Platform_DefaultRenderer.java:56)
[DOTNET]    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[DOTNET]    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[DOTNET]    at crc643f46942d9dd1fff9.VisualElementRenderer_1.n_dispatchTouchEvent(Native Method)
[DOTNET]    at crc643f46942d9dd1fff9.VisualElementRenderer_1.dispatchTouchEvent(VisualElementRenderer_1.java:68)
[DOTNET]    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[DOTNET]    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[DOTNET]    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[DOTNET]    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[DOTNET]    at crc643f46942d9dd1fff9.VisualElementRenderer_1.n_dispatchTouchEvent(Native Method)
[DOTNET]    at crc643f46942d9dd1fff9.VisualElementRenderer_1.dispatchTouchEvent(VisualElementRenderer_1.java:68)
[DOTNET]    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[DOTNET]    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[DOTNET]    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[DOTNET]    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[DOTNET]    at crc643f46942d9dd1fff9.VisualElementRenderer_1.n_dispatchTouchEvent(Native Method)
[DOTNET]    at crc643f46942d9dd1fff9.VisualElementRenderer_1.dispatchTouchEvent(VisualElementRenderer_1.java:68)
[DOTNET]    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[DOTNET]    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[DOTNET]    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[DOTNET]    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[DOTNET]    at crc643f46942d9dd1fff9.VisualElementRenderer_1.n_dispatchTouchEvent(Native Method)
[DOTNET]    at crc643f46942d9dd1fff9.VisualElementRenderer_1.dispatchTouchEvent(VisualElementRenderer_1.java:68)
[DOTNET]    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[DOTNET]    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[DOTNET]    at crc643f46942d9dd1fff9.PlatformRenderer.n_dispatchTouchEvent(Native Method)
[DOTNET]    at crc643f46942d9dd1fff9.PlatformRenderer.dispatchTouchEvent(PlatformRenderer.java:55)
[DOTNET]    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[DOTNET]    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[DOTNET]    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[DOTNET]    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[DOTNET]    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[DOTNET]    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[DOTNET]    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[DOTNET]    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[DOTNET]    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[DOTNET]    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[DOTNET]    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[DOTNET]    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[DOTNET]    at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:440)
[DOTNET]    at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1830)
[DOTNET]    at android.app.Activity.dispatchTouchEvent(Activity.java:3400)
[DOTNET]    at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69)
[DOTNET]    at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69)
[DOTNET]    at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:398)
[DOTNET]    at android.view.View.dispatchPointerEvent(View.java:12752)
[DOTNET]    at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:5106)
[DOTNET]    at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4909)
[DOTNET]    at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4426)
[DOTNET]    at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4479)
[DOTNET]    at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4445)
[DOTNET]    at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4585)
[DOTNET]    at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4453)
[DOTNET]    at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4642)
[DOTNET]    at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4426)
[DOTNET]    at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4479)
[DOTNET]    at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4445)
[DOTNET]    at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4453)
[DOTNET]    at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4426)
[DOTNET]    at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:7092)
[DOTNET]    at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:7061)
[DOTNET]    at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:7022)
[DOTNET]    at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:7195)
[DOTNET]    at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:186)
[DOTNET]    at android.view.InputEventReceiver.nativeConsumeBatchedInputEvents(Native Method)
[DOTNET]    at android.view.InputEventReceiver.consumeBatchedInputEvents(InputEventReceiver.java:177)
[DOTNET]    at android.view.ViewRootImpl.doConsumeBatchedInput(ViewRootImpl.java:7166)
[DOTNET]    at android.view.ViewRootImpl$ConsumeBatchedInputRunnable.run(ViewRootImpl.java:7218)
[DOTNET]    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:949)
[DOTNET]    at android.view.Choreographer.doCallbacks(Choreographer.java:761)
[DOTNET]    at android.view.Choreographer.doFrame(Choreographer.java:690)
[DOTNET]    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:935)
[DOTNET]    at android.os.Handler.handleCallback(Handler.java:873)
[DOTNET]    at android.os.Handler.dispatchMessage(Handler.java:99)
[DOTNET]    at android.os.Looper.loop(Looper.java:193)
[DOTNET]    at android.app.ActivityThread.main(ActivityThread.java:6669)
[DOTNET]    at java.lang.reflect.Method.invoke(Native Method)
[DOTNET]    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
[DOTNET]    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
[DOTNET] 
[DOTNET]   --- End of managed Java.Lang.IndexOutOfBoundsException stack trace ---
[DOTNET] java.lang.IndexOutOfBoundsException: setSpan (-1 ... -1) starts before 0
[DOTNET]    at android.text.SpannableStringBuilder.checkRange(SpannableStringBuilder.java:1326)
[DOTNET]    at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:682)
[DOTNET]    at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:674)
[DOTNET]    at android.text.Selection.setSelection(Selection.java:93)
[DOTNET]    at android.text.Selection.setSelection(Selection.java:77)
[DOTNET]    at android.text.method.ArrowKeyMovementMethod.onTouchEvent(ArrowKeyMovementMethod.java:273)
[DOTNET]    at android.widget.TextView.onTouchEvent(TextView.java:10089)
[DOTNET]    at android.view.View.dispatchTouchEvent(View.java:12513)
[DOTNET]    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[DOTNET]    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[DOTNET]    at crc643f46942d9dd1fff9.VisualElementRenderer_1.n_dispatchTouchEvent(Native Method)
[DOTNET]    at crc643f46942d9dd1fff9.VisualElementRenderer_1.dispatchTouchEvent(VisualElementRenderer_1.java:68)
[DOTNET]    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[DOTNET]    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[DOTNET]    at crc643f46942d9dd1fff9.Platform_DefaultRenderer.n_dispatchTouchEvent(Native Method)
[DOTNET]    at crc643f46942d9dd1fff9.Platform_DefaultRenderer.dispatchTouchEvent(Platform_DefaultRenderer.java:56)
[DOTNET]    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[DOTNET]    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[DOTNET]    at crc643f46942d9dd1fff9.VisualElementRenderer_1.n_dispatchTouchEvent(Native Method)
[DOTNET]    at crc643f46942d9dd1fff9.VisualElementRenderer_1.dispatchTouchEvent(VisualElementRenderer_1.java:68)
[DOTNET]    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[DOTNET]    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[DOTNET]    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[DOTNET]    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[DOTNET]    at crc643f46942d9dd1fff9.VisualElementRenderer_1.n_dispatchTouchEvent(Native Method)
[DOTNET]    at crc643f46942d9dd1fff9.VisualElementRenderer_1.dispatchTouchEvent(VisualElementRenderer_1.java:68)
[DOTNET]    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[DOTNET]    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[DOTNET]    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[DOTNET]    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[DOTNET]    at crc643f46942d9dd1fff9.VisualElementRenderer_1.n_dispatchTouchEvent(Native Method)
[DOTNET]    at crc643f46942d9dd1fff9.VisualElementRenderer_1.dispatchTouchEvent(VisualElementRenderer_1.java:68)
[DOTNET]    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[DOTNET]    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[DOTNET]    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[DOTNET]    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[DOTNET]    at crc643f46942d9dd1fff9.VisualElementRenderer_1.n_dispatchTouchEvent(Native Method)
[DOTNET]    at crc643f46942d9dd1fff9.VisualElementRenderer_1.dispatchTouchEvent(VisualElementRenderer_1.java:68)
[DOTNET]    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[DOTNET]    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[DOTNET]    at crc643f46942d9dd1fff9.PlatformRenderer.n_dispatchTouchEvent(Native Method)
[DOTNET]    at crc643f46942d9dd1fff9.PlatformRenderer.dispatchTouchEvent(PlatformRenderer.java:55)
[DOTNET]    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[DOTNET]    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[DOTNET]    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[DOTNET]    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[DOTNET]    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[DOTNET]    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[DOTNET]    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[DOTNET]    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[DOTNET]    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[DOTNET]    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[DOTNET]    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
[DOTNET]    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
[DOTNET]    at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:440)
[DOTNET]    at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1830)
[DOTNET]    at android.app.Activity.dispatchTouchEvent(Activity.java:3400)
[DOTNET]    at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69)
[DOTNET]    at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69)
[DOTNET]    at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:398)
[DOTNET]    at android.view.View.dispatchPointerEvent(View.java:12752)
[DOTNET]    at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:5106)
[DOTNET]    at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4909)
[DOTNET]    at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4426)
[DOTNET]    at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4479)
[DOTNET]    at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4445)
[DOTNET]    at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4585)
[DOTNET]    at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4453)
[DOTNET]    at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4642)
[DOTNET]    at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4426)
[DOTNET]    at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4479)
[DOTNET]    at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4445)
[DOTNET]    at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4453)
[DOTNET]    at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4426)
[DOTNET]    at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:7092)
[DOTNET]    at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:7061)
[DOTNET]    at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:7022)
[DOTNET]    at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:7195)
[DOTNET]    at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:186)
[DOTNET]    at android.view.InputEventReceiver.nativeConsumeBatchedInputEvents(Native Method)
[DOTNET]    at android.view.InputEventReceiver.consumeBatchedInputEvents(InputEventReceiver.java:177)
[DOTNET]    at android.view.ViewRootImpl.doConsumeBatchedInput(ViewRootImpl.java:7166)
[DOTNET]    at android.view.ViewRootImpl$ConsumeBatchedInputRunnable.run(ViewRootImpl.java:7218)
[DOTNET]    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:949)
[DOTNET]    at android.view.Choreographer.doCallbacks(Choreographer.java:761)
[DOTNET]    at android.view.Choreographer.doFrame(Choreographer.java:690)
[DOTNET]    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:935)
[DOTNET]    at android.os.Handler.handleCallback(Handler.java:873)
[DOTNET]    at android.os.Handler.dispatchMessage(Handler.java:99)
[DOTNET]    at android.os.Looper.loop(Looper.java:193)
[DOTNET]    at android.app.ActivityThread.main(ActivityThread.java:6669)
[DOTNET]    at java.lang.reflect.Method.invoke(Native Method)
[DOTNET]    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
[DOTNET]    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
[app_process] Java.Lang.IndexOutOfBoundsException: setSpan (-1 ... -1) starts before 0
[app_process]    at Java.Interop.JniEnvironment.InstanceMethods.CallNonvirtualBooleanMethod(JniObjectReference instance, JniObjectReference type, JniMethodInfo method, JniArgumentValue* args)
[app_process]    at Java.Interop.JniPeerMembers.JniInstanceMethods.InvokeVirtualBooleanMethod(String encodedMember, IJavaPeerable self, JniArgumentValue* parameters)
[app_process]    at Android.Views.View.DispatchTouchEvent(MotionEvent e)
[app_process]    at Xamarin.Forms.Platform.Android.VisualElementRenderer`1[[Xamarin.Forms.Entry, Xamarin.Forms.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null]].DispatchTouchEvent(MotionEvent e)
[app_process]    at Android.Views.View.n_DispatchTouchEvent_Landroid_view_MotionEvent_(IntPtr jnienv, IntPtr native__this, IntPtr native_e)
[app_process]    at Android.Runtime.JNINativeWrapper.Wrap_JniMarshal_PPL_Z(_JniMarshal_PPL_Z callback, IntPtr jnienv, IntPtr klazz, IntPtr p0)
[app_process] --- End of stack trace from previous location ---
[app_process]    at Java.Interop.JniEnvironment.InstanceMethods.CallNonvirtua
[] * Assertion at /__w/1/s/src/mono/mono/metadata/object.c:4141, condition `is_ok (error)' not met, function:mono_unhandled_exception_internal, (null) assembly:/data/data/com.geewallet.android/files/.__override__/Mono.Android.dll type:IndexOutOfBoundsException member:(null)
[libc] Fatal signal 6 (SIGABRT), code -6 (SI_TKILL) in tid 8075 (ewallet.android), pid 8075 (ewallet.android)
jpobst commented 1 year ago

Moving this to XF as it appears XF is calling into Android code with incorrect parameters:

[MonoDroid] Java.Lang.IndexOutOfBoundsException: setSpan (-1 ... -1) starts before 0
[MonoDroid]    at Java.Interop.JniEnvironment.InstanceMethods.CallNonvirtualBooleanMethod(JniObjectReference instance, JniObjectReference type, JniMethodInfo method, JniArgumentValue* args)
[MonoDroid]    at Java.Interop.JniPeerMembers.JniInstanceMethods.InvokeVirtualBooleanMethod(String encodedMember, IJavaPeerable self, JniArgumentValue* parameters)
[MonoDroid]    at Android.Views.View.DispatchTouchEvent(MotionEvent e)
[MonoDroid]    at Xamarin.Forms.Platform.Android.VisualElementRenderer`1[[Xamarin.Forms.Entry, Xamarin.Forms.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null]].DispatchTouchEvent(MotionEvent e)
[MonoDroid]    at Android.Views.View.n_DispatchTouchEvent_Landroid_view_MotionEvent_(IntPtr jnienv, IntPtr native__this, IntPtr native_e)
[MonoDroid]    at Android.Runtime.JNINativeWrapper.Wrap_JniMarshal_PPL_Z(_JniMarshal_PPL_Z callback, IntPtr jnienv, IntPtr klazz, IntPtr p0)

Also note that XF is not supported on net6.0-android, so I don't think this is expected to work.

jfversluis commented 1 year ago

As mentioned .NET 6 with Xamarin.Forms is not supported. The supported scenario for that would be to move to .NET MAUI.

If this is still something you want I'd be happy to review a PR for Forms to unblock you, but unfortunately we can't spend any time looking into this.

knocte commented 1 year ago

As mentioned .NET 6 with Xamarin.Forms is not supported

That's a fair point, but my aim was actually just to move to SDK-style project file; is there anyway to do this without moving to .NET6?