CrittercismIOS与MvvmCross冲突

5

我正在通过CrittercismIOS集成崩溃报告,并且已经在Xamarin组件商店中使用了该组件。

https://components.xamarin.com/view/crittercism

但应用程序崩溃并报告错误。
2015-11-25 10:49:50.621 MyApp[40227:2065265] critical: Stacktrace:

2015-11-25 10:49:50.621 MyApp[40227:2065265] critical:   at <unknown> <0xffffffff>
2015-11-25 10:49:50.621 MyApp[40227:2065265] critical:   at System.Reflection.MonoCMethod.InternalInvoke (object,object[]) [0x00016] in /Users/builder/data/lanes/2356/9ce9e8b9/source/maccore/_build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/src/mono/mcs/class/corlib/System.Reflection/MonoMethod.cs:650
2015-11-25 10:49:50.621 MyApp[40227:2065265] critical:   at System.RuntimeType.CreateInstanceMono (bool) [0x000ca] in /Users/builder/data/lanes/2356/9ce9e8b9/source/maccore/_build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/src/mono/mcs/class/corlib/ReferenceSources/RuntimeType.cs:113
2015-11-25 10:49:50.622 MyApp[40227:2065265] critical:   at System.RuntimeType.CreateInstanceSlow (bool,bool,bool,System.Threading.StackCrawlMark&) [0x0001a] in /Users/builder/data/lanes/2356/9ce9e8b9/source/maccore/_build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/src/mono/mcs/class/corlib/ReferenceSources/RuntimeType.cs:87
2015-11-25 10:49:50.622 MyApp[40227:2065265] critical:   at System.RuntimeType.CreateInstanceDefaultCtor (bool,bool,bool,System.Threading.StackCrawlMark&) [0x0002a] in /Users/builder/data/lanes/2356/9ce9e8b9/source/maccore/_build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/src/mono/external/referencesource/mscorlib/system/rttype.cs:5734
2015-11-25 10:49:50.622 MyApp[40227:2065265] critical:   at System.Activator.CreateInstance (System.Type,bool) [0x00040] in /Users/builder/data/lanes/2356/9ce9e8b9/source/maccore/_build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/src/mono/external/referencesource/mscorlib/system/activator.cs:214
2015-11-25 10:49:50.622 MyApp[40227:2065265] critical:   at System.Activator.CreateInstance (System.Type) [0x00000] in /Users/builder/data/lanes/2356/9ce9e8b9/source/maccore/_build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/src/mono/external/referencesource/mscorlib/system/activator.cs:147
2015-11-25 10:49:50.622 MyApp[40227:2065265] critical:   at Cirrious.MvvmCross.Touch.Views.MvxTouchViewsContainer.CreateViewOfType (System.Type,Cirrious.MvvmCross.ViewModels.MvxViewModelRequest) <IL 0x00077, 0x002fb>
2015-11-25 10:49:50.622 MyApp[40227:2065265] critical:   at Cirrious.MvvmCross.Touch.Views.MvxTouchViewsContainer.CreateView (Cirrious.MvvmCross.ViewModels.MvxViewModelRequest) <IL 0x0003e, 0x0018f>
2015-11-25 10:49:50.623 MyApp[40227:2065265] critical:   at Cirrious.MvvmCross.Touch.Views.MvxCanCreateTouchViewExtensionMethods.CreateViewControllerFor (Cirrious.MvvmCross.Touch.Views.IMvxCanCreateTouchView,Cirrious.MvvmCross.ViewModels.MvxViewModelRequest) <IL 0x00007, 0x0004a>
2015-11-25 10:49:50.623 MyApp[40227:2065265] critical:   at Cirrious.MvvmCross.Touch.Views.Presenters.MvxTouchViewPresenter.Show (Cirrious.MvvmCross.ViewModels.MvxViewModelRequest) <IL 0x00003, 0x00037>
2015-11-25 10:49:50.623 MyApp[40227:2065265] critical:   at Cirrious.MvvmCross.Touch.Views.MvxTouchViewDispatcher/<>c__DisplayClass4.<ShowViewModel>b__3 () <IL 0x00028, 0x00090>
2015-11-25 10:49:50.623 MyApp[40227:2065265] critical:   at Cirrious.MvvmCross.Touch.Views.MvxTouchUIThreadDispatcher.RequestMainThreadAction (System.Action) <IL 0x00028, 0x000e8>
2015-11-25 10:49:50.623 MyApp[40227:2065265] critical:   at Cirrious.MvvmCross.Touch.Views.MvxTouchViewDispatcher.ShowViewModel (Cirrious.MvvmCross.ViewModels.MvxViewModelRequest) <IL 0x00024, 0x0015b>
2015-11-25 10:49:50.623 MyApp[40227:2065265] critical:   at Cirrious.MvvmCross.ViewModels.MvxNavigatingObject.ShowViewModelImpl (System.Type,Cirrious.MvvmCross.ViewModels.IMvxBundle,Cirrious.MvvmCross.ViewModels.IMvxBundle,Cirrious.MvvmCross.ViewModels.MvxRequestedBy) <IL 0x00030, 0x00145>
2015-11-25 10:49:50.623 MyApp[40227:2065265] critical:   at Cirrious.MvvmCross.ViewModels.MvxNavigatingObject.ShowViewModel (System.Type,Cirrious.MvvmCross.ViewModels.IMvxBundle,Cirrious.MvvmCross.ViewModels.IMvxBundle,Cirrious.MvvmCross.ViewModels.MvxRequestedBy) <IL 0x00006, 0x0004f>
2015-11-25 10:49:50.624 MyApp[40227:2065265] critical:   at Cirrious.MvvmCross.ViewModels.MvxNavigatingObject.ShowViewModel<T_REF> (Cirrious.MvvmCross.ViewModels.IMvxBundle,Cirrious.MvvmCross.ViewModels.IMvxBundle,Cirrious.MvvmCross.ViewModels.MvxRequestedBy) <IL 0x0000e, 0x0005b>

"MvvmCross"版本为3.5.1,"Crittercism"版本为2.4,在Xamarin组件商店中可以找到。
如果我删除"FinishedLaunching"中的这段代码。
CrittercismIOS.Crittercism.Init("00ac4950703d418c9cef9b7818cc307300444503");

应用程序运行良好(它也与Xamarin.Insight一起运行良好,但不可能同时使用两个dll)。


1
我在使用Crittercism和iOS时遇到了同样的问题。 - PmanAce
你能发一下 MonoMethod.cs 的第 650 行作为参考吗? - Ryan Fung
https://github.com/mono/mono/blob/master/mcs/class/corlib/System.Reflection/MonoMethod.cs#L650 - Luigi Saggese
2个回答

0

-1
对于MvvmCross,您应该将Crittercism初始化放在您的Setup.cs类中。
public Setup(Context applicationContext) : base(applicationContext)
{
    Crittercism.Init (applicationContext, "YOUR APP ID GOES HERE");
}

Crittercism Xamarin文档中提供的设置说明假定您将代码放在继承自Android Activity的类中。但是,在MvvmCross中,这并不适用。您需要将初始化放在Setup方法中,如上所示。

你能否在MvvmCross示例中的任何一个上重现此问题(https://github.com/MvvmCross/MvvmCross-Samples)?我在ValueConversion应用程序上尝试了一下,在iOS上无法重现。但是在Android上出现了崩溃,但是这是由于不完整的集成说明引起的。 - David

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接