0

直到最近我還在使用Xamarin Insights。我從我的項目中刪除它,因爲它顯着增加了啓動時間和應用程序大小。所以我剩下兩個選擇來自微軟的Hockeyapp和Mobile Center。這些2的問題在於,他們沒有任何報告捕獲異常的報告功能,通常在您的xamarin表單項目中嘗試捕獲內容。如何處理xamarin表單項目中的異常處理?

的確非常令人失望。

xamarin insight有this它工作正常。我想問問我們如何才能在表單項目中報告異常?是應用程序洞察力選項。我在其他.net項目中使用,但UI確實不太可用。

甚至還有在github線程這裏

https://github.com/Microsoft/ApplicationInsights-Xamarin/issues/26

微軟說,我們正在爲此工作了一年以上,從來沒有任何提供並保持自嘲的東西。

+0

在HockeyApp中,您可以通過在catch塊中添加事件來跟蹤捕獲異常的次數。但是,您無法真正發回附加信息。 – cvanbeek

+0

如何將異常作爲事件發送?它是否像串一樣工作? – batmaci

+0

[HockeyApp文檔](https://support.hockeyapp.net/kb/client-integration-cross-platform/how-to-integrate-hockeyapp-with-xamarin)表示支持添加Dictionary以包含測量等等,但我還沒有找到一種方法來實際閱讀他們的網站上的測量(我可能只是做錯了事情)。否則,所有事件都會記錄該行代碼執行的次數。 – cvanbeek

回答

2

我們使用移動中心報告問題。基本上每個catch語句中,我們使用一個靜態類報告的問題,比如:

public static class EventTrace 
{ 
    public static void Trace(string menuName, string actionName, Dictionary<string, string> parameters = null) 
    { 
     try 
     { 
      Dictionary<string, string> tmp; 
      if (parameters != null) 
       tmp = new Dictionary<string, string>(parameters); 
      else 
       tmp = new Dictionary<string, string>(); 

      tmp.Add("GUID", MobileCenter.InstallId.ToString()); 
      Analytics.TrackEvent(menuName + " - " + actionName, tmp); 
     } 
     catch (Exception ex) 
     { 
      Analytics.TrackEvent("Event Trace - Error creating event", new Dictionary<string, string> { { "Exception", ex.ToString() } }); 
      Analytics.TrackEvent(menuName + " - " + actionName, parameters); 
     } 
    } 

    public static void Error(string menuName, string exception) 
    { 
     var parameters = new Dictionary<string, string> { { "Exception", exception } }; 
     var tmp = new Dictionary<string, string>(parameters); 
     try 
     { 
      tmp.Add("GUID", MobileCenter.InstallId.ToString()); 
      Analytics.TrackEvent(menuName + " - Error", tmp); 
     } 
     catch (Exception ex) 
     { 
      Analytics.TrackEvent("Event Trace - Error creating event", new Dictionary<string, string> { { "Exception", ex.ToString() } }); 
      Analytics.TrackEvent(menuName + " - Error", parameters); 
     } 
    } 
} 

我們有捕捉錯誤跟蹤事件,和事件。在移動中心,我們基本上可以在事件選項卡中搜索「錯誤」語句。

它適合我們,希望它適合你!

+0

Hockeyapp有相似之處,但他們沒有形式層面的跟蹤事件,只有在本地層面。它需要執行依賴注入,如此處所述https://forums.xamarin.com/discussion/92974/hockeyapp-custom-events-on-xamarin-forms。 你做了類似的事嗎?所以你的Analytics對象是你使用接口注入的對象嗎? 除此之外,您是否還能夠看到設備信息和應用程序版本信息? – batmaci

+0

當我使用PCL時,所有的錯誤報告和事件跟蹤都位於應用程序的可移植部分。我必須做的唯一棘手的事情是爲每個操作系統(在我的情況下爲Android和iOS)創建不同的移動中心項目,並在每次啓動時使用提供的不同移動中心ID初始化移動中心。 這裏(https://screenpresso.com/=NGCLe)就是一個例子:我使用的是MVVMCross,所以我的啓動都在Setup中。 –