如何在DEBUG模式下禁用Crashlytics和Answers

4

我希望在调试环境下禁用Crashlytics和Answers。

我在网上找到了很多解决方案,但没有一个描述如何禁用Answer模块。

目前,我正在使用以下代码。然而,只有Crashlytics被禁用了。

CrashlyticsCore core = new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build();
Fabric.with(this, new Crashlytics.Builder().core(core).build(), new Answers());

@marcin-orlowski 这不是引用问题的重复。使用Fabric Answers时需要考虑特定的事项。请允许我在答案中解释。 - NoHarmDan
1个回答

0

这样怎么样:

CrashlyticsCore core = new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build();
Crashlytics crashlytics = new Crashlytics.Builder().core(core).build();
if (BuildConfig.DEBUG) {
    Fabric.with(this, crashlytics);
} else {
    Fabric.with(this, crashlytics, new Answers());
}

我的担忧是所有Answer的调用分散在代码中会发生什么。我不想将它们全部包装起来。 - Oximer
抱歉,我没有先阅读文档。所以我会提取分析接口,并为调试和发布版本准备两个实现。 - Eugen Martynov
然而,我仍然认为您的用户群体将产生更多的事件,以忽略开发中的少量事件。 - Eugen Martynov
我不确定在Answers中是否可以忽略特定的应用程序版本(我可能有你的调试版本作为前缀为dev),或者如果它是调试版本,您可以为事件添加后缀。 - Eugen Martynov
1
这个答案在技术上是正确的,但有几点需要注意:
  1. 在所有调用方面,不初始化 Answers 是安全的-它们只是不执行任何操作。
  2. 但是,如果您在以前启用了 Answers 的应用中禁用 Answers,则它们仍可能报告事件,直到应用程序被关闭并重新启动(根据我的测试,在更新期间不需要发生这种情况)。
- NoHarmDan
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接