`Xamarin.Insights.Initialize(string)'已经过时了

时间:2016-05-16 04:27:00

标签: xamarin xamarin.ios xamarin.insights

我继承了一个旧的Xamarin项目,其中包括Xamarin.Insights,并且刚刚尝试更新了所有软件包。现在它不会构建,因为以下问题:

`Xamarin.Insights.Initialize(string)' is obsolete: `Insights must be initialized from a platform specific assembly'

我在Xamarin.Insights.Initialise("xxx");课程的Main()方法中运行Application,就像它在说明中所说的一样。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

修改

Xamarin.Insights将在没有明确引用的情况下从您的核心项目提供异常报告,但如果您在核心项目中进行任何明确的Insights报告调用,您将单独保留该参考。

Insights确实改变了一段时间,但正如错误所示,具有特定于平台的初始化。

如果您添加对Xamarin.iOS和Xamarin.Android项目的引用,那么一旦您将Insights初始化移动到每个特定于平台的启动中,事情就会像以前一样工作。

这是来自Xamarin.iOS项目的App类,它显示了Xamarin.Insights初始化:

public class App
{
    private static void Main(string[] args)
    {
        // Initialize metrics and crash tracking.
        Xamarin.Insights.Initialize(Forms.App.XamarinInsightsApiKey);

        // Launch UI.
        UIApplication.Main(args, null, "AppDelegate");
    }
}

和Xamarin.Android版本:

[Application]
public class MainApplication : Application, Application.IActivityLifecycleCallbacks
{
    #region Constructors

    public MainApplication(IntPtr handle, JniHandleOwnership transer)
      :base(handle, transer)
    {
        // Do not remove this work-around for a Xamarin linker issue related to SSL/TLS certificate trust. This line of
        // code prevents the linker from stripping out AES capabilities needed but not obvious because they are accessed
        // via reflection. Issue https://bugzilla.xamarin.com/show_bug.cgi?id=13998.
        // ReSharper disable once UnusedVariable
        var b = new System.Security.Cryptography.AesCryptoServiceProvider();

        NotificationToken = null;
    }

    #endregion Constructors

    #region Methods

    public override void OnCreate()
    {
        base.OnCreate();
        RegisterActivityLifecycleCallbacks(this);

        // Initialize metrics and crash tracking.
        Xamarin.Insights.Initialize(Forms.App.XamarinInsightsApiKey, ApplicationContext);
    }