Xamarin Forms的移动中心问题

时间:2017-01-20 14:10:17

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

我已经开始使用Azure Mobile Center作为Android游戏的Xamarin.Forms应用程序。

我已添加了所需的Mobile Center SDK调用,但我仍无法在Google Analytics中看到任何内容。请注意,我可以正确构建和分发应用程序。

App.xams.cs中的App()构造函数如下所示:

public App()
{            
     InitializeComponent();            
     MobileCenter.Start(typeof(Analytics), typeof(Crashes));
     MobileCenter.LogLevel = LogLevel.Verbose;
}

我还在MainActivity.cs的OnCreate事件中添加了configure调用

protected override void OnCreate(Bundle bundle)
{
     TabLayoutResource = Resource.Layout.tabs;
     ToolbarResource = Resource.Layout.toolbar;

     base.OnCreate(bundle);

     global::Xamarin.Forms.Forms.Init(this, bundle);
     MobileCenter.Configure("my_app_id");
     LoadApplication(new App(new AndroidInitializer()));
}

经过几次测试后,Prism似乎影响了MobileCenter类。 App()构造函数未被调用,因此我将其添加到现有构造函数中:

public App(IPlatformInitializer initializer = null) : base(initializer) {
        MobileCenter.Start(typeof(Analytics), typeof(Crashes));
    }

但是我得到一个“System.NullReferenceException:对象引用未设置为对象的实例。”似乎Crashes和Analytics没有正确初始化。 MobileCenter是一个静态类,所以这可能会影响它的初始化。

感谢任何帮助。 谢谢,

3 个答案:

答案 0 :(得分:1)

将调用移动到OnInitialized方法。

答案 1 :(得分:0)

我在app Prism中使用它来实现MVVM。我有预感,这可能会影响事情;我创建了一个新项目,没有使用Prism,瞧......我终于可以看到Analytics了!

问题在于Prism以何种方式影响MobileCenter。我已经更新了原来的问题。

答案 2 :(得分:0)

就我而言,这是因为我只为共享项目安装了Nuget软件包(Analytics& Crashes)。为iOS项目安装它并修复它。