0

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

确实非常令人失望。

xamarin 洞察力有这个,它工作得很好。我想问一下如何在表单项目中报告异常?应用洞察是一种选择。我在其他 .net 项目中使用过,但 UI 确实不太好用。

github上什至有一个线程here

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

微软说我们正在研究它一年或更长时间,并且从未交付任何东西并不断弃用东西。

4

1 回答 1

3

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

我们有用于跟踪的事件和用于捕获错误的事件。在移动中心,我们基本上可以在事件选项卡中搜索“错误”语句。

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

于 2017-06-18T14:04:37.253 回答