Xamarin.Forms android错误:Java.Interop.JniEnvironmentAnimators只能在Looper线程

时间:2017-09-15 14:37:09

标签: android xamarin.forms

我们有一个Xamarin.Forms应用程序,一般运行良好,但我们已经开始在Insights中报告以下内容:

Java.Interop.JniEnvironmentAnimators只能在Looper线程上运行

  

System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()< 0fb81fca302d41cc8bea1069ded33ca9>:0   Java.Interop.JniEnvironment.InstanceMethods.CallVoidMethod(JniObjectReference instance,JniMethodInfo method,JniArgumentValue * args)< 8a19b22052394845b3d8400a8aa05cd1>:0   Java.Interop.JniPeerMembers.JniInstanceMethods.InvokeVirtualVoidMethod(string encodedMember,IJavaPeerable self,JniArgumentValue * parameters)< 8a19b22052394845b3d8400a8aa05cd1>:0   Android.Views.View.set_Enabled(bool value)< 72b4460d071c467fa3746c6821c025dd>:0   Xamarin.Forms.Platform.Android.ButtonRenderer.UpdateEnabled()< 8783e2b68568446a8522c36407e66253>:0   Xamarin.Forms.Platform.Android.ButtonRenderer.OnElementPropertyChanged(object sender,PropertyChangedEventArgs e)< 8783e2b68568446a8522c36407e66253>:0   .invoke_void_object_PropertyChangedEventArgs(object,PropertyChangedEventArgs)(包装器委托调用)   Xamarin.Forms.BindableObject.OnPropertyChanged(string propertyName)< 6e20d7af277949f4a7bb952d64b81cda>:0   Xamarin.Forms.Element.OnPropertyChanged(string propertyName)< 6e20d7af277949f4a7bb952d64b81cda>:0   Xamarin.Forms.BindableObject.SetValueActual(BindableProperty属性,BindableObject.BindablePropertyContext上下文,对象值,bool当前应用,BindableObject.SetValueFlags属性,bool无声)< 6e20d7af277949f4a7bb952d64b81cda>:0   Xamarin.Forms.BindableObject.SetValueCore(BindableProperty属性,对象值,BindableObject.SetValueFlags属性,BindableObject.SetValuePrivateFlags privateAttributes)< 6e20d7af277949f4a7bb952d64b81cda>:0   Xamarin.Forms.BindableObject.SetValueCore(BindableProperty属性,对象值,BindableObject.SetValueFlags属性)< 6e20d7af277949f4a7bb952d64b81cda>:0   Xamarin.Forms.Button.set_IsEnabledCore(bool value)< 6e20d7af277949f4a7bb952d64b81cda>:0   Xamarin.Forms.Button.CommandCanExecuteChanged(object sender,EventArgs eventArgs)< 6e20d7af277949f4a7bb952d64b81cda>:0   .invoke_void_object_EventArgs(object,EventArgs)(包装器委托调用)   Xamarin.Forms.Command.ChangeCanExecute()< 6e20d7af277949f4a7bb952d64b81cda>:0   Musterd.UI.PageModels.SelectMusterPointPageModel.set_OkButtonEnabled(bool value):0

这是在运行Android N的三星S7上。

该应用正在运行Xamarin.Forms 2.3.4.270

在Android下的Xamarin.Forms看起来相当深刻。有人看过这个和/或有任何建议吗?

1 个答案:

答案 0 :(得分:0)

我发现我们正在调用Command的ChangeCanExecute方法来响应正在处理的事件,但我们不在UI线程上。

更改为在UI线程上运行修复了问题。