Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Xamarin Android在ShowViewModel MvxCachingFragmentCompatActivity.ShowFragment异常后更改方向_C#_Xamarin_Xamarin.android_Mvvmcross - Fatal编程技术网

C# Xamarin Android在ShowViewModel MvxCachingFragmentCompatActivity.ShowFragment异常后更改方向

C# Xamarin Android在ShowViewModel MvxCachingFragmentCompatActivity.ShowFragment异常后更改方向,c#,xamarin,xamarin.android,mvvmcross,C#,Xamarin,Xamarin.android,Mvvmcross,我有个问题。。我有一个主页,其中有一个带有一些按钮的MvxListView。。。当我点击按钮时,它会通过ShowViewModel在这个SomeViewModel中更改我的viewmodel。当我点击后退按钮时,我在这里绑定了ShowViewModel(我需要这个而不是关闭(这个)…。它工作正常,我回到了主页上。。。但问题是,当我通过“后退”按钮返回主页后,我将主页的方向从横向更改为纵向,现在当我单击该按钮时,我看到了MVxCachingFragmentCompativity.ShowFragm

我有个问题。。我有一个主页,其中有一个带有一些按钮的MvxListView。。。当我点击按钮时,它会通过ShowViewModel在这个SomeViewModel中更改我的viewmodel。当我点击后退按钮时,我在这里绑定了ShowViewModel(我需要这个而不是关闭(这个)…。它工作正常,我回到了主页上。。。但问题是,当我通过“后退”按钮返回主页后,我将主页的方向从横向更改为纵向,现在当我单击该按钮时,我看到了MVxCachingFragmentCompativity.ShowFragment异常

当我使用Close(this)而不是ShowViewModel时,它工作时没有错误。如何使用ShowViewModel解决此崩溃问题

来自HockeyApp的崩溃报告:

MvxCachingFragmentCompatActivity.ShowFragment

android.runtime.JavaProxyThrowable: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object.

Xamarin caused by: android.runtime.JavaProxyThrowable: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object.
MvvmCross.Droid.Support.V7.AppCompat.MvxCachingFragmentCompatActivity.ShowFragment(string tag, int contentId, Bundle bundle, bool forceAddToBackStack, bool forceReplaceFragment)
MvvmCross.Droid.Support.V7.AppCompat.MvxCachingFragmentCompatActivity.Show(MvxViewModelRequest request, Bundle bundle, Type fragmentType, MvxFragmentAttribute fragmentAttribute)
MvvmCross.Droid.Shared.Presenter.MvxFragmentsPresenter.ShowFragment(MvxViewModelRequest request)
MvvmCross.Droid.Shared.Presenter.MvxFragmentsPresenter.Show(MvxViewModelRequest request)
MvvmCross.Droid.Views.MvxAndroidViewDispatcher.<>c__DisplayClass2_0.<ShowViewModel>b__0()
MvvmCross.Droid.Views.MvxAndroidMainThreadDispatcher.RequestMainThreadAction(Action action)
MvvmCross.Droid.Views.MvxAndroidViewDispatcher.ShowViewModel(MvxViewModelRequest request)
MvvmCross.Core.ViewModels.MvxNavigatingObject.ShowViewModelImpl(Type viewModelType, IMvxBundle parameterBundle, IMvxBundle presentationBundle)
MvvmCross.Core.ViewModels.MvxNavigatingObject.ShowViewModel(Type viewModelType, IMvxBundle parameterBundle, IMvxBundle presentationBundle)
MvvmCross.Core.ViewModels.MvxNavigatingObject.ShowViewModel(Type viewModelType, IDictionary<TKey, TValue> parameterValues, IMvxBundle presentationBundle)
MvvmCross.Core.ViewModels.MvxNavigatingObject.ShowViewModel<TViewModel>(object parameterValuesObject, IMvxBundle presentationBundle)
MyMarkeeta.Core.ViewModels.ShopHolder.<get_ShowDailySalesCommand>b__46_0()
MvvmCross.Core.ViewModels.MvxCommand.Execute(object parameter)
MvvmCross.Binding.Droid.Target.MvxViewClickBinding.ViewOnClick(object sender, EventArgs args)
System.Reflection.MonoMethod.InternalInvoke(MonoMethod, object, object[], ref Exception)(wrapper managed-to-native)
System.Reflection.MonoMethod.Invoke(object obj, BindingFlags invokeAttr, Binder binder, object[] parameters, CultureInfo culture)<d18287e1d683419a8ec3216fd78947b9>:0
--- End of inner exception stack trace ---
System.Reflection.MonoMethod.Invoke(object obj, BindingFlags invokeAttr, Binder binder, object[] parameters, CultureInfo culture)<d18287e1d683419a8ec3216fd78947b9>:0
System.Reflection.MethodBase.Invoke(object obj, object[] parameters)<d18287e1d683419a8ec3216fd78947b9>:0
MvvmCross.Platform.WeakSubscription.MvxWeakEventSubscription<TSource>.OnSourceEvent(object sender, EventArgs e)
Android.Views.View.IOnClickListenerImplementor.OnClick(View v)<33e6e739ac344166b157e323586f11a1>:0
Android.Views.View.IOnClickListenerInvoker.n_OnClick_Landroid_view_View_(IntPtr jnienv, IntPtr native__this, IntPtr native_v)<33e6e739ac344166b157e323586f11a1>:0
at (wrapper dynamic-method) System.Object:8e0ee8ce-4942-437a-a709-093d1dea6c77 (intptr,intptr,intptr)
mono.android.view.View_OnClickListenerImplementor.n_onClick(Native Method)
mono.android.view.View_OnClickListenerImplementor.onClick()View_OnClickListenerImplementor.java:30
android.view.View.performClick()View.java:5265
android.view.View$PerformClick.run()View.java:21534
android.os.Handler.handleCallback()Handler.java:815
android.os.Handler.dispatchMessage()Handler.java:104
android.os.Looper.loop()Looper.java:207
android.app.ActivityThread.main()ActivityThread.java:5728
java.lang.reflect.Method.invoke(Native Method)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run()ZygoteInit.java:789
com.android.internal.os.ZygoteInit.main()ZygoteInit.java:679
android.runtime.JavaProxyThrowable:System.Reflection.TargetInvocationException:调用的目标已引发异常。-->System.NullReferenceException:对象引用未设置为对象的实例。
Xamarin由以下原因引起:android.runtime.JavaProxyThrowable:System.Reflection.TargetInvocationException:调用的目标已引发异常。-->System.NullReferenceException:对象引用未设置为对象的实例。
MvvmCross.Droid.Support.V7.AppCompat.MvxCachingFragmentCompatActivity.ShowFragment(字符串标记、int-contentId、捆绑包、bool-forceAddToBackStack、bool-forceReplaceFragment)
MvvmCross.Droid.Support.V7.AppCompat.MvxCachingFragmentCompatActivity.Show(MvxViewModelRequest请求、捆绑包、类型fragmentType、MvxFragmentAttribute fragmentAttribute fragmentAttribute)
MvvmCross.Droid.Shared.Presenter.MVXFramentsPresenter.ShowFragment(MvxViewModelRequest请求)
MvvmCross.Droid.Shared.Presenter.MvxFragmentsPresenter.Show(MvxViewModelRequest请求)
MvvmCross.Droid.Views.MvxAndroidViewDispatcher.c__DisplayClass2_0.b__0()
MvvmCross.Droid.Views.MvxAndroidMainThreadDispatcher.RequestMainThreadAction(操作操作)
MvvmCross.Droid.Views.MvxAndroidViewDispatcher.ShowViewModel(MvxViewModelRequest请求)
MvvmCross.Core.ViewModels.MvxNavigatingObject.ShowViewModelImpl(类型viewModelType、IMvxBundle参数bundle、IMvxBundle presentationBundle)
MvvmCross.Core.ViewModels.MvxNavigatingObject.ShowViewModel(类型viewModelType、IMvxBundle参数bundle、IMvxBundle presentationBundle)
MvvmCross.Core.ViewModels.MvxNavigatingObject.ShowViewModel(类型viewModelType、IDictionary参数值、IMvxBundle presentationBundle)
MvvmCross.Core.ViewModels.MvxNavigatingObject.ShowViewModel(对象参数ValuesObject,IMvxBundle presentationBundle)
MyMarkeeta.Core.ViewModels.ShopHolder.b_u46_0()
MvvmCross.Core.ViewModels.MvxCommand.Execute(对象参数)
MvvmCross.Binding.Droid.Target.MvxViewClickBinding.ViewOnClick(对象发送方,事件参数)
System.Reflection.MonoMethod.InternalInvoke(MonoMethod,object,object[],ref异常)(包装器管理为本机)
System.Reflection.MonMethod.Invoke(对象obj、BindingFlags invokeAttr、Binder Binder、对象[]参数、CultureInfo区域性):0
---内部异常堆栈跟踪的结束---
System.Reflection.MonMethod.Invoke(对象obj、BindingFlags invokeAttr、Binder Binder、对象[]参数、CultureInfo区域性):0
System.Reflection.MethodBase.Invoke(对象obj,对象[]参数):0
MvvmCross.Platform.WeakSubscription.MvxWeakEventSubscription.OnSourceEvent(对象发送方,事件参数e)
Android.Views.View.IOnClickListenerImplementor.OnClick(视图v):0
Android.Views.View.IOnClickListenerInvoker.n_OnClick_Landroid_View_View_(IntPtr jnienv,IntPtr native__this,IntPtr native_v):0
at(包装器动态方法)系统。对象:8e0ee8ce-4942-437a-a709-093d1dea6c77(intptr、intptr、intptr)
mono.android.view.view\u OnClickListenerImplementor.n\u onClick(本机方法)
mono.android.view.view\u OnClickListenerImplementor.onClick()视图\u OnClickListenerImplementor.java:30
android.view.view.performClick()view.java:5265
android.view.view$PerformClick.run()view.java:21534
handleCallback()Handler.java:815
android.os.Handler.dispatchMessage()Handler.java:104
loop()Looper.java:207
main()ActivityThread.java:5728
java.lang.reflect.Method.invoke(本机方法)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run()ZygoteInit.java:789
com.android.internal.os.ZygoteInit.main()ZygoteInit.java:679

我会检查生命周期方法(VM->Init、SaveToBundle、ReloadFromBundle、Start;V->OnCreate、OnCreateView、OnResume等)是否具有非预期的空值,这可能是导致异常的原因当您更改主页方向时,当前活动将被销毁并重新启动。通过在ActivityAttribute中设置ConfigurationChanges,可以防止在方向更改时重新启动活动。我会检查生命周期方法(VM->Init、SaveToBundle、ReloadFromBundle、Start;V->OnCreate、OnCreateView、OnResume等)为了避免出现可能导致异常的非预期空值,当您更改主页方向时,当前活动将被销毁并重新启动。通过在ActivityAttribute中设置ConfigurationChanges,可以防止在方向更改时重新启动活动。