Ale*_*akh 6 android release xamarin.android mvvmcross xamarin
我正在使用MvvmCross开发Xamarin.Android应用程序.每次我在RELEASE配置下启动应用程序时,它会在启动时崩溃并出现以下错误:
Cirrious.CrossCore.Exceptions.MvxException:无法从定位器MvxDefaultViewModelLocator构造和初始化类型DroidApp.Core.ViewModels.MainViewModel的ViewModel - 检查MvxTrace以获取更多信息
这个应用程序在DEBUG配置下工作得非常好.在我更新代码以使用MvvmCross 3.1之后,问题开始出现
堆栈跟踪的完整输出如下:
03-16 03:53:04.110 I/MonoDroid(593):UNHANDLED EXCEPTION:Cirrious.CrossCore.Exceptions.MvxException:无法从定位器MvxDefaultViewModelLocator构造和初始化类型为Pcl.Core.ViewModels.MainViewModel的ViewModel - 检查MvxTrace以获取更多信息03-16 03:53:04.110 I/MonoDroid(593):在Cirrious.MvvmCross.ViewModels.MvxViewModelLoader.LoadViewModel(Cirrious.MvvmCross.ViewModels.MvxViewModelRequest,Cirrious.MvvmCross.ViewModels.IMvxBundle,Cirrious.MvvmCross.ViewModels.IMvxViewModelLocator) 03-16 03:53:04.110 I/MonoDroid(593):在Cirrious.MvvmCross.ViewModels.MvxViewModelLoader.LoadViewModel(Cirrious.MvvmCross.ViewModels.MvxViewModelRequest,Cirrious.MvvmCross.ViewModels.IMvxBundle)03-16 03:53:04.110 I/MonoDroid(593):在Cirrious.MvvmCross.Droid.Views.MvxAndroidViewsContainer.ViewModelFromRequest(Cirrious.MvvmCross.ViewModels.MvxViewModelRequest,Cirrious.MvvmCross.ViewModels.IMvxBundle)03-16 03:53:04.110 I/MonoDroid(593) :在Cirrious.MvvmCross.Droid.Views.Mvx AndroidViewsContainer.CreateViewModelFromIntent(Android.Content.Intent,Cirrious.MvvmCross.ViewModels.IMvxBundle)03-16 03:53:04.110 I/MonoDroid(593):在Cirrious.MvvmCross.Droid.Views.MvxAndroidViewsContainer.Load(Android.Content. Intent,Cirrious.MvvmCross.ViewModels.IMvxBundle,System.Type)03-16 03:53:04.110 I/MonoDroid(593):在Cirrious.MvvmCross.Droid.Views.MvxActivityViewExtensions.LoadViewModel(Cirrious.MvvmCross.Droid.Views. IMvxAndroidView,Cirrious.MvvmCross.ViewModels.IMvxBundle)03-16 03:53:04.110 I/MonoDroid(593):在Cirrious.MvvmCross.Droid.Views.MvxActivityViewExtensions/<> c_ DisplayClass3.b _1()03-16 03: 53:04.110 I/MonoDroid(593):在Cirrious.MvvmCross.Views.MvxViewExtensionMethods.OnViewCreate(Cirrious.MvvmCross.Views.IMvxView,System.Func
1<Cirrious.MvvmCross.ViewModels.IMvxViewModel>) <IL 0x00013, 0x00113> 03-16 03:53:04.110 I/MonoDroid( 593): at Cirrious.MvvmCross.Droid.Views.MvxActivityViewExtensions.OnViewCreate (Cirrious.MvvmCross.Droid.Views.IMvxAndroidView,Android.OS.Bundle) <IL 0x00073, 0x0031f> 03-16 03:53:04.110 I/MonoDroid( 593): at Cirrious.MvvmCross.Droid.Views.MvxActivityAdapter.EventSourceOnCreateCalled (object,Cirrious.CrossCore.Core.MvxValueEventArgs
1)03-16 03:53:04.110 I/MonoDroid(593):at (wrapper delegate-invoke)System.EventHandler1<Cirrious.CrossCore.Core.MvxValueEventArgs
1> .invoke_void_ this __object_TEventArgs(object,Cirrious.CrossCore.Core.MvxValueEventArgs1<Android.OS.Bundle>) <0x00067> 03-16 03:53:04.110 I/MonoDroid( 593): at Cirrious.CrossCore.Core.MvxDelegateExtensionMethods.Raise<Android.OS.Bundle> (System.EventHandler
1>,object,Android.OS.Bundle)<0x000c3> 03-16 03:53:04.110 I/MonoDroid(593):在Cirrious.CrossCore.Droid.Views.MvxEventSourceActivity.OnCreate(Android.OS.Bundle)03-16 03:53:04.110 I/MonoDroid(593):at MyApp.Droid.Common .MvxActivityBase.OnCreate(Android.OS.Bundle)03-16 03:53:04.110 I/MonoDroid(593):at MyApp.Droid.Views.MainView.OnCreate(Android.OS.Bundle)03-16 03:53: 04.110 I/MonoDroid(593):at Android.App.Activity.n_OnCreate_Landroid_os_Bundle_(intptr,intptr,intptr)03-16 03:53:04.110 I/MonoDroid(593):at(wrapper dynamic-method)object.e62191de-ee25 -45fe-b902-796a741820a1(intptr,intptr,intptr)未处理的异常:Cirrious.CrossCore.Exceptions.MvxException:无法从定位器MvxDefaultViewModelLocator构造和初始化类型为Pcl.Core.ViewModels.MainViewModel的ViewModel - 有关更多信息,请查看MvxTrace 03-16 03:53:07.080 E/mono-rt(593):[错误]致命未处理例外:Cirrious.CrossCore.Exceptions.MvxException:无法从定位器MvxDefaultViewModelLocator构造和初始化类型为Pcl.Core.ViewModels.MainViewModel的ViewModel - 有关详细信息,请查看MvxTrace 03-16 03:53:07.080 E/mono- rt(593):在Cirrious.MvvmCross.ViewModels.MvxViewModelLoader.LoadViewModel(Cirrious.MvvmCross.ViewModels.MvxViewModelRequest请求,IMvxBundle savedState,IMvxViewModelLocator viewModelLocator)[0x00000] in:0 03-16 03:53:07.080 E/mono-rt (593):在Cirrious.MvvmCross.ViewModels.MvxViewModelLoader.LoadViewModel(Cirrious.MvvmCross.ViewModels.MvxViewModelRequest请求,IMvxBundle savedState)[0x00000] in:0 03-16 03:53:07.080 E/mono-rt(593):在Cirrious.MvvmCross.Droid.Views.MvxAndroidViewsContainer.ViewModelFromRequest(Cirrious.MvvmCross.ViewModels.MvxViewModelRequest viewModelRequest,IMvxBundle savedState)[0x00000] in:0 03-16 03:53:07.080 E/mono-rt(593):at Cirrious.MvvmCross.Droid.Views. MvxAndroidViewsContainer.CreateViewModelFromIntent(Android.Content.Intent intent,IMvxBundle savedState)[0x00000]程序'Mono'已退出,代码为0(0x0).
根据提供的信息,我不知道是什么导致了这个问题.
您列出的例外情况将在https://github.com/MvvmCross/MvvmCross/blob/v3.1/Cirrious/Cirrious.MvvmCross/ViewModels/MvxViewModelLoader.cs#L46上引发
这只能在MvxDefaultViewModelLocator
返回时发生false
.
当MvxDefaultViewModelLocator
返回false
它总是记录一条消息解释为什么-见
https://github.com/MvvmCross/MvvmCross/blob/v3.1/Cirrious/Cirrious.MvvmCross/ViewModels/MvxDefaultViewModelLocator.cs#L31
要调试它我会:
base.OnCreate()
调用周围添加一个异常处理程序MainView
,看看它是否解释了问题.MainViewModel
构造函数中添加一些跟踪和/或断点- 它是否被调用? 归档时间: |
|
查看次数: |
6483 次 |
最近记录: |