2016-10-25 174 views
2

我的應用程序意外崩潰了,我沒聽清楚是什麼任何異常......我已經註冊的處理程序:xamarin.mac應用程序崩潰報告

static void Main (string [] args) 
     { 
      NSApplication.Init(); 
      NSApplication.Main (args); 

      AppDomain.CurrentDomain.UnhandledException += HandleUnhandledException; 
     } 


     static void HandleUnhandledException (object sender, UnhandledExceptionEventArgs e) 
     { 
      //Log the exception... 
      FileHelper.CreateLogFile ("app crash", e.ExceptionObject.ToString()); 
     } 

但它不叫。

而且,我看不到裏面的任何報告:

〜/圖書館/日誌/ DiagnosticReports

有沒有辦法看到我的應用程序的崩潰報告?

回答

2

AppDomain.CurrentDomain.UnhandledException僅當您有一個管理的異常發生時纔會觸發整個堆棧。但是,如果您在本機代碼中崩潰,或者在本機代碼中出現NSException,或者在從本機代碼中調用時拋出託管的異常,則它可能不會執行您想要的任何操作。

試試這個:

ObjCRuntime.Runtime.MarshalManagedException += (sender, args) => 
{ 
    Console.WriteLine (args.Exception); 
}; 

您也可以考慮對MMP編組的ObjectiveC的例外和元帥管理的例外(https://github.com/xamarin/xamarin-macios/blob/master/tools/common/Driver.cs#L24)這些選項。

相關問題