将 Firebase 崩溃报告更新到 Firebase Crashlytics:仍在旧仪表板上

Posted

技术标签:

【中文标题】将 Firebase 崩溃报告更新到 Firebase Crashlytics:仍在旧仪表板上【英文标题】:Update Firebase Crash report to Firebase Crashlytics: still on old dashboard 【发布时间】:2018-11-29 20:14:54 【问题描述】:

我按照here 所述的步骤升级了我的 android 应用程序以使用 Firebase Crashlytics 而不是 Firebase 崩溃报告。

我在应用程序中添加了这个崩溃测试:

Button crashButton = new Button(this);
crashButton.setText("Crash!");
crashButton.setOnClickListener(new View.OnClickListener() 
    public void onClick(View view) 
        Crashlytics.getInstance().crash(); // Force a crash
    
);
addContentView(crashButton,
               new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
               ViewGroup.LayoutParams.WRAP_CONTENT));

我实际上可以在 Firebase 仪表板上看到 Crashlytics 生成的崩溃:

但是正如您所看到的,它仍在使用旧的仪表板,当我转到 Crashlytics 时,即使按照文档中描述的所有步骤进行操作,我总是有这个页面:

然后:

然后什么也没有发生。 是否需要执行更多步骤才能将 Firebase 崩溃报告仪表板替换为 Crashlytics 仪表板?

【问题讨论】:

嘿,来自 Crashlytics 的 Paul。看起来崩溃已发送到崩溃报告仪表板。您能否确认它们是否也被发送到 Crashlytics 仪表板?谢谢! 嘿!我该如何检查?我无法访问 Crashlytics 仪表板。但我只使用 Crashlytics 类(Crashlytics.log()、Crashlytics.getInstance().crash() 等) 不,每次我通过屏幕进入第 1 步的文档时:这个应用程序是 Crashlytics 的新手吗?第 2 步:安装 SDK,第 3 步:构建并运行您的应用,然后卡在这个页面上,我从未见过 Crashlytics Dashboard @buser 我们的应用也遇到了同样的问题。执行此处描述的步骤后,我们将永远无法查看 Crashlytics 仪表板。有没有办法解决这个问题? 您是否曾经安装过 Fabric.io/Crashlytics?我在我的 plist 中有一个对键的引用,我有一个 ios 应用程序,它把它扔掉了。在我移除钥匙后,一切都开始工作了。 【参考方案1】:

我有同样的问题,年表:

首先,我的应用使用了 fabric 中的 crashlytics 其次,我将 crashlytics 替换为 firebase 崩溃报告,但并未完全删除 第三,我想从 firebase 崩溃报告升级到 firebase crashlytics,仍然在旧仪表板上。

然后我阅读了文档:

If you're moving to Firebase Crashlytics from Fabric Crashlytics, there are two things to be aware of:

Fabric Beta doesn't currently have a Firebase equivalent. If you'd like to use Beta in your project, keep using Fabric Crashlytics.
If you're upgrading an existing app from Fabric Crashlytics, remove the Fabric API key from your AndroidManifest.xml by deleting the key's meta-data tag, which should include io.fabric.ApiKey and your old Fabric API key.

所以我从我的 AndroidManifest.xml 中删除了 Fabric API 密钥,然后运行该应用程序。它有效。

【讨论】:

非常感谢!从清单中删除“ApiKey”解决了我的问题:) 这对我有用。还要确保从代码、清单和 gradle 文件中删除所有其他对 Fabric / Crashlytics 的引用。然后按照教程从头开始:firebase.google.com/docs/crashlytics/get-started?authuser=0 谢谢..从项目中删除 fabric API Key 也对我有用【参考方案2】:

您必须从build.gradle 中删除对firebase-crash 的依赖;然后它报告:

D/FirebaseApp:com.google.firebase.crash.FirebaseCrash 未关联。跳过初始化。

I/FirebaseInitProvider:FirebaseApp 初始化成功

那么它应该只报告给Crashlytics。还需要在仪表板中链接项目。

也可以通过以下方式启用/禁用Mainfest.xml 中的崩溃报告:

<!-- <meta-data android:name="io.fabric.ApiKey" android:value=""/> -->
<meta-data android:name="firebase_crash_collection_enabled" android:value="false"/>
<meta-data android:name="firebase_crashlytics_collection_enabled" android:value="true"/>

删除旧的Firebase Crash Reporting 库和旧的Fabric Crashlytics API 密钥会将应用程序连接到Firebase Crashlytics。 iOS 客户端的行为应该类似......但是,在手动迁移时,可能不会保留以前的日志 - 如果您需要它们,最好等待报告被迁移。 https://medium.com/@bonnell/fabric-and-firebaser-here-16ffb98b5afe

【讨论】:

以上是关于将 Firebase 崩溃报告更新到 Firebase Crashlytics:仍在旧仪表板上的主要内容,如果未能解决你的问题,请参考以下文章

如何将映射文件上传到 Firebase Crashlytics?

Firebase Crashlytics 未报告崩溃

Crashlytics vs Fabric vs Firebase 崩溃报告——我迷路了

将 LogCat 日志添加到 Firebase Crashlytics

Firebase 崩溃报告上传错误

在 Android 中启用 Firebase 崩溃报告