【问题标题】:Mobile Center issue with Xamarin FormsXamarin 表单的移动中心问题
【发布时间】:2017-01-20 14:10:16
【问题描述】:

我已经开始将 Azure Mobile Center 用于 Xamarin.Forms 应用程序,用于 Android 部分。

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

这就是 App.xams.cs 中的 App() 构造函数的样子:

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

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

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:对象引用未设置为对象的实例”。似乎崩溃和分析未正确初始化。 MobileCenter 是一个静态类,因此可能会影响其初始化。

感谢任何帮助。 谢谢,

【问题讨论】:

  • 您是否在同一应用程序中使用任何其他崩溃报告工具,例如 Hockeyapp、Xamarin.Insights、Crashalytics 等?
  • 您好,为了避免丢失一些调试日志,您应该在调用Configure 之前移动MobileCenter.LogLevel = LogLevel.Verbose。然后要么使用adb bugreport 创建一个包含所有日志的调试文件,要么手动提取标签以MobileCenter 开头的所有日志,以便我们对其进行调查。
  • 我不使用其他崩溃报告工具。我将转移 LogLevel 电话并回复您。感谢大家的意见。
  • 我看到你已经开了对讲票,你可以在那里上传日志。

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


【解决方案1】:

将调用移到 OnInitialized 方法中。

【讨论】:

  • 谢谢布赖恩!有用。我放了“MobileCenter.Start(typeof(Analytics), typeof(Crashes));”在 OnInitialized 方法的 InitializeComponent 调用之后。再次感谢,不胜感激。
  • Marius,你的问题解决了吗?我有同样的问题。我的应用每天打开时都会崩溃
【解决方案2】:

我在应用程序中使用 Prism 来实现 MVVM。我有一种预感,这可能会影响事情;我在不使用 Prism 的情况下创建了一个新项目,瞧……我可以看到 Analytics……终于!

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

【讨论】:

  • 如果你得到一个空引用异常,它会发生有时一个 nuget 包没有正确安装在 android 项目中。我看到了在 android 项目中使用的程序集引用是可移植 DLL 而不是单声道 android DLL 的情况。在这种情况下的解决方案是清除包缓存并卸载/重新安装 Android 项目中的 nuget 包。
  • 谢谢,我试试看。
  • 我遇到了类似@GuillaumePerrot 的问题,解决这个问题的方法是清理您的解决方案并删除 obj bin 文件夹,然后重建您的解决方案
【解决方案3】:

就我而言,这是因为我只为共享项目安装了 Nuget 包(分析和崩溃)。为 iOS 项目安装它也修复了它。

【讨论】:

    猜你喜欢
    • 2021-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-26
    • 2020-05-26
    • 1970-01-01
    • 2018-07-11
    • 2018-03-07
    相关资源
    最近更新 更多