【发布时间】:2017-07-10 04:59:35
【问题描述】:
我的 Android 应用在生产环境中崩溃,我们的崩溃报告工具是 XamarinInsights,它会转储以下堆栈
at (wrapper castclass) System.Object:__castclass_with_cache (object,intptr,intptr)
在 MvvmCross.Droid.Support.V7.AppCompat.MvxAppCompatActivity1[TViewModel].get_ViewModel () [0x00006] in <76c7f3cdfddd459898d814608e83832e>:0
at AnyNameSpace.BaseActivity1[TViewModel].get_Context () [0x00000] 在 :0
在 AnyNameSpace.BaseActivity`1[TViewModel].OnCreate (Android.OS.Bundle bundle) [0x00015] in :0
在 AnyNameSpace.ProfileView.OnCreate (Android.OS.Bundle 包) [0x00000] 在 :0
在 Android.Support.V4.App.FragmentActivity.n_OnCreate_Landroid_os_Bundle_ (System.IntPtr jnienv, System.IntPtr native__this, System.IntPtr native_savedInstanceState) [0x00011] 在 :0
在(包装器动态方法) System.Object:dd3ad951-7481-46d2-860d-a9601d351cd2 (intptr,intptr,intptr)
这是引发异常的位置
public class ProfileView : BaseAppActivity<ProfileViewModel>
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.ProfileView);
Title = string.Format("{0} | {1}", Title, Context.Version);
}
}
BaseAppActivity:BaseActivity
protected override void OnCreate(Bundle bundle)
{
SupportRequestWindowFeature((int)WindowFeatures.IndeterminateProgress);
base.OnCreate(bundle);
RegisterBaseViewReceiver();
if (Context != null)
{
Context.OnLoaded();
}
和BaseActivity
public class BaseActivity<TViewModel> : MvxAppCompatActivity<TViewModel>
where TViewModel : BaseViewModel
{
public TViewModel Context
{
get
{
return (TViewModel)base.ViewModel;
}
}
}
抛出异常
return (TViewModel)base.ViewModel;
但我无法在发布和调试配置中重现此崩溃,我只能在崩溃报告系统中看到此错误。有什么想法吗?
【问题讨论】:
-
仅供参考,GitHub Issues 上也对此问题进行了一些讨论。
标签: c# android xamarin mvvmcross