AnsweredAssumed Answered

GeoView.CollapseAttribution () Java.Lang.RuntimeException: Only the original thread that created a view hierarchy can touch its views.

Question asked by nwestfall on Jan 8, 2019
Latest reply on Apr 15, 2019 by MBranscomb-esristaff

In our crash reporting, we get this error every so often.  Is there a way we can prevent it and make sure that it's called on the UI thread or is that something only you can do?

 

ExceptionDispatchInfo.Throw ()
JniEnvironment+InstanceMethods.CallVoidMethod (Java.Interop.JniObjectReference instance, Java.Interop.JniMethodInfo method, Java.Interop.JniArgumentValue* args)
JniPeerMembers+JniInstanceMethods.InvokeVirtualVoidMethod (System.String encodedMember, Java.Interop.IJavaPeerable self, Java.Interop.JniArgumentValue* parameters)
TextView.SetSingleLine (System.Boolean singleLine)
GeoView.CollapseAttribution ()
GeoView.OnGeoViewTapped (Android.Graphics.PointF screenLocation, Esri.ArcGISRuntime.UI.DeviceIndependentPointingDevice device)
UserInteractionHandler.OnTapped (Android.Graphics.PointF screenLocation, Esri.ArcGISRuntime.UI.DeviceIndependentPointingDevice device)
AndroidDeviceInteractionHandler.OnSingleTapConfirmed (Android.Views.MotionEvent e)
GestureDetector+IOnDoubleTapListenerInvoker.n_OnSingleTapConfirmed_Landroid_view_MotionEvent_ (System.IntPtr jnienv, System.IntPtr native__this, System.IntPtr native_e)
(wrapper dynamic-method) System.Object.5e0ab96e-6fb7-4c66-841e-397ae52430ca(intptr,intptr,intptr)
android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
android.view.ViewRootImpl.checkThread(ViewRootImpl.java:6442)
android.view.ViewRootImpl.requestLayout(ViewRootImpl.java:919)
android.view.View.requestLayout(View.java:17498)
android.view.View.requestLayout(View.java:17498)
android.view.View.requestLayout(View.java:17498)
android.view.View.requestLayout(View.java:17498)
android.view.View.requestLayout(View.java:17498)
android.view.View.requestLayout(View.java:17498)
android.view.View.requestLayout(View.java:17498)
android.view.View.requestLayout(View.java:17498)
android.view.View.requestLayout(View.java:17498)
android.widget.RelativeLayout.requestLayout(RelativeLayout.java:360)
android.view.View.requestLayout(View.java:17498)
android.view.View.requestLayout(View.java:17498)
android.view.View.requestLayout(View.java:17498)
android.view.View.requestLayout(View.java:17498)
android.view.View.requestLayout(View.java:17498)
android.widget.TextView.setLines(TextView.java:3386)
android.widget.TextView.applySingleLine(TextView.java:7373)
android.widget.TextView.setSingleLine(TextView.java:7351)
md5110b0bbb3c85ab617c45131eadbc2cc8.AndroidDeviceInteractionHandler.n_onSingleTapConfirmed(Native Method)
md5110b0bbb3c85ab617c45131eadbc2cc8.AndroidDeviceInteractionHandler.onSingleTapConfirmed(AndroidDeviceInteractionHandler.java:66)
android.view.GestureDetector$GestureHandler.handleMessage(GestureDetector.java:273)
android.os.Handler.dispatchMessage(Handler.java:102)
android.os.Looper.loop(Looper.java:135)
android.os.HandlerThread.run(HandlerThread.java:61)

Outcomes