मेरा एंड्रॉइड ऐप उत्पादन वातावरण में दुर्घटनाग्रस्त हो रहा है, हमारा क्रैश रिपोर्टिंग टूल XamarinInsights है, यह निम्नलिखित स्टैक को डंप करता है
at MvvmCross.Platform.IoC.MvxSimpleIoCContainer.GetIoCParameterValues (System.Type type, System.Reflection.ConstructorInfo firstConstructor) [0x00066] in <4ddde23419c5494288c799fcdbb0f189>:0
at MvvmCross.Platform.IoC.MvxSimpleIoCContainer.IoCConstruct (System.Type type) [0x0002a] in <4ddde23419c5494288c799fcdbb0f189>:0
at MvvmCross.Platform.Mvx.IocConstruct[T] () [0x00005] in <4ddde23419c5494288c799fcdbb0f189>:0
at MvvmCross.Platform.Mvx+<>c__13`2[TInterface,TType].<LazyConstructAndRegisterSingleton>b__13_0 () [0x00000] in <4ddde23419c5494288c799fcdbb0f189>:0
at MvvmCross.Platform.IoC.MvxSimpleIoCContainer+<>c__DisplayClass33_0`1[TInterface].<RegisterSingleton>b__0 () [0x00000] in <4ddde23419c5494288c799fcdbb0f189>:0
at MvvmCross.Platform.IoC.MvxSimpleIoCContainer+ConstructingSingletonResolver.Resolve () [0x00028] in <4ddde23419c5494288c799fcdbb0f189>:0
at MvvmCross.Platform.IoC.MvxSimpleIoCContainer.InternalTryResolve (System.Type type, MvvmCross.Platform.IoC.MvxSimpleIoCContainer+IResolver resolver, System.Object& resolved) [0x00041] in <4ddde23419c5494288c799fcdbb0f189>:0
at MvvmCross.Platform.IoC.MvxSimpleIoCContainer.InternalTryResolve (System.Type type, System.Nullable`1[T] requiredResolverType, System.Object& resolved) [0x0002e] in <4ddde23419c5494288c799fcdbb0f189>:0
at MvvmCross.Platform.IoC.MvxSimpleIoCContainer.InternalTryResolve (System.Type type, System.Object& resolved) [0x00000] in <4ddde23419c5494288c799fcdbb0f189>:0
at MvvmCross.Platform.IoC.MvxSimpleIoCContainer.Resolve (System.Type t) [0x00011] in <4ddde23419c5494288c799fcdbb0f189>:0
at MvvmCross.Platform.IoC.MvxSimpleIoCContainer.Resolve[T] () [0x00000] in <4ddde23419c5494288c799fcdbb0f189>:0
at MvvmCross.Platform.Mvx.Resolve[TService] () [0x00005] in <4ddde23419c5494288c799fcdbb0f189>:0
at MyNamespace.Android.PushNotificationListener.SendNotification (System.String message, MyNamespace.Core.NotificationPayload payload) [0x00137] in <03e2d64cacc54ebebbfb6133dd9c33ae>:0
मुझे लगता है कि जब मैं MainThreadDispatcher को हल करने और बनाने का प्रयास करता हूं तो अपवाद फेंक दिया गया था। लेकिन मुझे समझ नहीं आता क्यों।
private IMvxMainThreadDispatcher _dispatcher = Mvx.Resolve<IMvxMainThreadDispatcher>();
private void ShowToastMessage(string message, double duration)
{
_dispatcher.RequestMainThreadAction(() =>
{
...
});
}
2 जवाब
हर बार जब आप पुश प्राप्त करते हैं तो एमवीवीएमक्रॉस सिस्टम को प्रारंभ करने का प्रयास करें क्योंकि निष्पादन विभिन्न संदर्भों में किया जा सकता है (जब ऐप अनलोड किया जाता है) लेकिन पुश अधिसूचना सेवा सक्रिय है।
प्रक्रिया को फिर से शुरू करने के बाद IntentService
, या BroadcastReceiver
के साथ काम करते समय यह एक बहुत ही सामान्य समस्या है। MvvmCross IoC कंटेनर आमतौर पर आपकी स्प्लैश स्क्रीन द्वारा सेटअप किया जाता है। इन मामलों में स्प्लैश स्क्रीन नहीं दिखाई जाती है इसलिए Mvx IoC मूल रूप से अप्रारंभीकृत है। आप पुश सूचना प्राप्त करने के बाद MvvmCross सेटअप को इनिशियलाइज़ करना सुनिश्चित करके समस्या को ठीक कर सकते हैं।
var setupSingleton = MvxAndroidSetupSingleton.EnsureSingletonAvailable(this.ApplicationContext);
setupSingleton.EnsureInitialized();
MvvmCross में MvxIntentService
और MvxBroadcastReceiver
हैं। यदि आप इन ऑब्जेक्ट्स का उपयोग करते हैं तो आपके लिए MvvmCross सेटअप स्वचालित रूप से प्रारंभ हो जाता है।
संबंधित सवाल
नए सवाल
c#
C # (उच्चारण "तेज देखें") Microsoft द्वारा विकसित एक उच्च स्तरीय, सांख्यिकीय रूप से टाइप किया हुआ, बहु-प्रतिमान प्रोग्रामिंग भाषा है। C # कोड आमतौर पर Microsoft के .NET परिवार के टूल और रन-टाइम को लक्षित करता है, जिसमें .NET फ्रेमवर्क, .NET कोर और Xamarin अन्य शामिल हैं। C # या C # के औपचारिक विनिर्देश में लिखे गए कोड के बारे में प्रश्नों के लिए इस टैग का उपयोग करें।