【发布时间】:2018-09-02 10:26:45
【问题描述】:
随着 Google 发出一波波关于需要让用户选择加入崩溃报告的警告 (source),我正在尝试为 Firebase Crashlytics 构建一个选择加入对话框。
为了能够做到这一点,我需要知道当前是否启用了 Crashlytics(以决定是否显示对话框)。似乎CrashlyticsCore.disabled 负责跟踪这个,但我还没有找到任何访问该值的方法,因为它是包私有的并且没有访问器。我如何在运行时知道 Firebase Crashlytics 是否已启用?
我需要做的第二件事是默认禁用崩溃报告,并在用户同意选择加入时启用它。我如何怀疑能够做到这一点:
AndroidManifest:
<meta-data
android:name="firebase_crashlytics_collection_enabled"
android:value="false" />
活动:
boolean userAgrees = true;
CrashlyticsCore core = new CrashlyticsCore.Builder().disabled(!userAgrees).build();
Fabric.with(this, new Crashlytics.Builder().core(core).build());
throw new RuntimeException("why doesn't this show up in Firebase Crashlytics?");
为什么我的 RuntimeException 没有出现在 Firebase Crashlytics 中?
附:删除这些尝试以创建选择加入对话框时,Crashlytics 工作正常。
【问题讨论】:
-
你正在使用
crashlytics:2.9.1构建吗?当我使用该版本时,您的代码对我有用。另外,在您的测试过程中,请注意直到下次应用重新启动时才会上传崩溃。 -
是的,我正在使用
2.9.1。您能在 Firebase 或 Fabric 环境中看到崩溃报告吗?也许这是一个线程问题,因为我确实在 Activity 的onCreate中抛出了RuntimeException,所以也许我正在崩溃我的应用程序,而 crashlytics 仍在另一个线程上上传之前的崩溃?我以为它是通过 Play 服务上传的,所以从没想过下一次应用重启。我会做更多的测试。 -
我在 Firebase 控制台中看到了崩溃。
标签: android firebase crashlytics