firebase_crashlytics_collection_enabled 在新的 Firebase Crashlytics SDK 中不工作

firebase_crashlytics_collection_enabled not working in new Firebase Crashlytics SDK

在 Fabric 将于 3 月 31 日关闭后,我尝试使用新的 Firebase Crashlytics SDK,目前处于测试阶段。

我会尽量确保只有在征得用户同意后才会传输崩溃日志。在 documentation 他们提到了以下内容:

By default, Crashlytics automatically collects crash reports for all your app's users. To give users more control over the data they send, you can enable opt-in reporting for your users by disabling automatic collection and initializing Crashlytics only for selected users:

  1. Turn off automatic collection with a meta-data tag in your AndroidManifest.xml file:

    <meta-data android:name="firebase_crashlytics_collection_enabled" android:value="false" />

不幸的是,这在我的应用程序中不起作用。我故意让应用程序崩溃后,崩溃仍然会自动传输。

如何确保崩溃不会自动传输?

如果您调用 sendUnsentReports(),那将 override setCrashlyticsCollectionEnabled 设置。此外,在自动收集的更改生效之前,有必要重新启动应用程序。

如果用户禁用了选择加入报告,出现错误,然后又启用了报告,则之前累积的任何未发送的报告将在启用选择加入时全部发送,因此也有必要deleteUnsentReports() 在启用选择性报告之前。

似乎对 setCrashlyticsCollectionEnabled 的调用很粘滞。因此,如果您在应用程序的生命周期中设置一次,那么 AndroidManifest.xml 中的任何内容都将在应用程序的连续运行中被忽略。这就是发生在我身上的事情,让我想知道我的清单中的 meta-data 设置是否被忽略了。
您可以通过调用 `setCrashlyticsCollectionEnabled(null) 或重新安装应用程序来清除此问题。

这是一个错误的概率。升级后

implementation("com.google.firebase:firebase-crashlytics:17.4.0")

它将按预期工作。无需重新启动应用程序。