उद्देश्य: हमारे यहाँ उद्देश्य एक अपवाद के डेटा स्टैक ट्रेस है कि हम वास्तव में क्या Release Mode
या Debug Mode
में क्या समस्या का कारण बनता है पहचान करने में मदद हड़पने के लिए। हम इस मुद्दे और कारणों को समझने में सक्षम होंगे। हम इस डेटा को text
फ़ाइल में संग्रहीत करेंगे जो डिवाइस संग्रहण में स्टोर किया जाएगा।
समाधान: वैकल्पिक रूप से आप अपने खुद के अंतर्दृष्टि वह पंजे है कि आप आप अनुप्रयोग अंतर्दृष्टि और सुराग दे देंगे एप्लिकेशन का परीक्षण करते समय अगर कुछ गलत हो गया कर सकते हैं। यह तुम्हारा होगा, आप चाहें तो आप ट्विक कर सकते हैं। आइए दुनिया भर में try{}
और catch{}
पर जाएं।
Helper Class
फ़ाइल बनाएं जिसमें अपवाद डेटा के लिए टेक्स्ट फ़ाइल उत्पन्न करने का कोई तरीका है।
public static class ExceptionFileWriter
{
#region Property File Path
static string FilePath
{
get
{
string path = string.Empty;
var _fileName = "Fatal.txt";
#if __IOS__
string documentsPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); // Documents folder C:\ddddd
string libraryPath = Path.Combine(documentsPath, "..", "Library"); // Library folder C:\dddd\...\library
path = Path.Combine(libraryPath, _fileName); //c:\ddddd\...\library\NBCCSeva.db3
#else
#if __ANDROID__
string dir = Path.Combine(Android.OS.Environment.ExternalStorageDirectory.ToString(), "Exception");
if (Directory.Exists(dir))
return Path.Combine(dir, _fileName);
path= Path.Combine(Directory.CreateDirectory(dir).FullName, _fileName);
#endif
#endif
return path;
}
}
#endregion
#region ToLog Exception
public static void ToLogUnhandledException(this Exception exception)
{
try
{
var errorMessage = String.Format("Time: {0}\r\nError: Unhandled Exception\r\n{1}\n\n", DateTime.Now, string.IsNullOrEmpty(exception.StackTrace) ? exception.ToString() : exception.StackTrace);
File.WriteAllText(FilePath, errorMessage);
}
catch (Exception ex)
{
// just suppress any error logging exceptions
}
}
#endregion
}
समय कोड लागू करने के लिए: यदि आपके ऐप की Application
फ़ाइल या Splash Activity
अंदर निम्न इवेंट सदस्यता लें। मैं इस मामले में आवेदन का उपयोग कर रहा हूँ।
AppDomain.CurrentDomain.UnhandledException += CurrentDomainOnUnhandledException;
TaskScheduler.UnobservedTaskException += TaskSchedulerOnUnobservedTaskException;
[Application]
public class ExceptionHandlingApp : Application
{
#region Constructor
public ExceptionHandlingApp(IntPtr javaReference, JniHandleOwnership transfer)
: base(javaReference, transfer)
{
}
#endregion
#region OnCreate
public override void OnCreate()
{
base.OnCreate();
AppDomain.CurrentDomain.UnhandledException += CurrentDomainOnUnhandledException;
TaskScheduler.UnobservedTaskException += TaskSchedulerOnUnobservedTaskException;
}
#endregion
#region Task Schedular Exception
private static void TaskSchedulerOnUnobservedTaskException(object sender, UnobservedTaskExceptionEventArgs unobservedTaskExceptionEventArgs)
{
var newExc = new Exception("TaskSchedulerOnUnobservedTaskException", unobservedTaskExceptionEventArgs.Exception);
newExc.ToLogUnhandledException();
}
#endregion
#region Current Domain Exception
private static void CurrentDomainOnUnhandledException(object sender, UnhandledExceptionEventArgs unhandledExceptionEventArgs)
{
var newExc = new Exception("CurrentDomainOnUnhandledException", unhandledExceptionEventArgs.ExceptionObject as Exception);
newExc.ToLogUnhandledException();
}
#endregion
}
ध्यान दें: आप अपवाद डिवाइस संग्रहण में रिकॉर्ड फ़ाइल प्राप्त कर सकते हैं | फ़ाइल प्रबंधक> अपवाद फ़ोल्डर> fatal.txt
चीयर्स !!
Result Video
Full Article
, लेकिन मैं व्यापार संस्करण के साथ अपने साथ लगता है। कृपया मुझे सुधारें अगर मैं गलत हूं। – RIYAZ
कम से कम आज के लिए यह सभी Xamarin ग्राहकों के लिए मुफ्त और असीमित है। जब Xamarin.Insights की घोषणा की गई है तो मूल्य निर्धारण के बारे में यह वाक्य था: * पूर्वावलोकन के अंत में मूल्य निर्धारण की घोषणा की जाएगी, लेकिन ज़ैमरिन ग्राहकों के लिए कोई अतिरिक्त योजना नहीं होगी। * Https: //blog.xamarin। com/monitor-your-apps-with-xamarin-insights/ – Wosi
अच्छा, यह अच्छा है :) @Wosi साझा करने के लिए धन्यवाद। – RIYAZ