如何禁用Crashlytics答案?

禁用Crashlytics错误报告相对比较简单。 。 我也想禁用debugging版本的答案。 然而,

new Crashlytics.Builder().answers(null); 

不起作用,因为显然答案不能为空

 new Crashlytics.Builder().answers(new CustomAnswers()); 

与CustomAnswers正在我的课扩展答案让我一个NPE时调用Answers.getInstance() 。 但是与简单地调用一些enable()方法相比,这种方法开始比较麻烦。

有任何想法吗?

另外一个方面,我真的希望Fabric很快就会更新和改进他们的文档。

  • crashlytics android studio gradle build失败
  • Crashlytics发现一个无效的API密钥
  • Android无法在PackageManager io.crash.air中find这个应用程序
  • 与crashlyticslogging我的数据的麻烦
  • 如何发送Crashlitycs日志
  • Android Crashlytics - 限制网络访问
  • Firebase存储exception与Crashlyticsexception不匹配?
  • 你如何设置Crashlytics的时区?
  • 在我的应用程序,我们做这个老式的方式:

     if (!IS_DEBUG) { Fabric.with(this, new Crashlytics()); } 

    工作正常。

    当然,您可以使用您需要的任何自定义参数进行初始化。

    编辑:

    得到debugging布尔值只是使用gradle你的青睐的问题:

     src/ main/ // your app code debug/ AppSettings.Java: public static final boolean IS_DEBUG = true; release/ AppSettings.Java: public static final boolean IS_DEBUG = false; 

    编辑:

    我build议不要使用BuildConfig.DEBUG,请参阅此文章: http : //www.digipom.com/be-careful-with-buildconfig-debug/

    就目前而言,我解决了Java的老方法:

    使用一种单例扩展Answers

     public class CustomAnswers extends Answers { private static CustomAnswers instance; private boolean mEnabled; private CustomAnswers(boolean enabled) { super(); mEnabled = enabled; } public static synchronized void init(boolean enabled) { if (instance == null) { instance = new CustomAnswers(enabled); } } public static synchronized CustomAnswers get() { return instance; } @Override public void logSignUp(SignUpEvent event) { if (mEnabled) { super.logSignUp(event); } } // (...) } 

    使用Answers实现初始化Crashlytics:

     boolean isDebug = DebugHelper.isDebugVersion(this); CustomAnswers.init(!isDebug); CrashlyticsCore crashlyticsCore = new CrashlyticsCore.Builder().disabled(isDebug).build(); Fabric.with(this, new Crashlytics.Builder() .core(crashlyticsCore).answers(CustomAnswers.get()).build()); 

    使用Answers实现事件:

     CustomAnswers.get().logInvite(new InviteEvent()); 

    这将禁用正在logging的事件。

    请注意,正如我的第一篇文章中所述, Answers.getInstance()将返回null,而不是您的CustomAnswers实例。

    试试这个代码

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

    要么

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