如何处理xamarin表单项目中的处理异常?

时间:2017-06-17 14:41:17

标签: xamarin xamarin.forms hockeyapp mobile-center visual-studio-app-center

直到最近我才使用Xamarin Insights。我从项目中删除了它,因为它显着增加了启动时间和应用程序大小。所以我留下了来自微软的2个选项Hockeyapp和Mobile Center。这两个问题是他们没有任何报告功能来报告捕获的异常,通常是你在xamarin表单项目中的try catch中要做的事情。

非常令人失望。

xamarin insight有this并且它工作正常。我想问一下如何在表单项目中报告异常?应用洞察是一种选择。我在其他.net项目中使用过,但UI确实不太可用。

这里的github上甚至还有一个帖子

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

微软表示,我们正在研究它一年或更长时间,从不提供任何东西并不断弃用。

1 个答案:

答案 0 :(得分:3)

我们使用移动中心报告问题。基本上在每个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);
        }
    }
}

我们有跟踪事件和catch错误事件。在移动中心,我们基本上可以搜索&#34;错误&#34;事件标签中的陈述。

它对我们有用,希望它适合你!