在调试模式下禁用新的 Firebase Crashlytics

mar*_*337 33 android firebase crashlytics

我最近从 Fabric one 切换到新的 Firebase Crashlytics,但找不到在调试模式下禁用 Crashlytics 的替代方法。

织物:

val crashlytics = Crashlytics.Builder().core(CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build()).build()
Fabric.with(this, crashlytics, Answers())
Run Code Online (Sandbox Code Playgroud)

有谁知道答案吗?我FirebaseCrashlytics已经看到该类现在在内部设置了其核心。我试过了FirebaseCrashlytics(CrashlyticsCore.??).getInstance(),但那种构造函数不起作用。

同时CrashlyticsCore该类已不再具有.Builder()

Man*_*ddy 55

要以编程方式执行此操作,请在 Application 类中使用以下代码

FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(!BuildConfig.DEBUG)
//enabled only for signed builds
Run Code Online (Sandbox Code Playgroud)

通过在运行时调用 Crashlytics 数据收集覆盖,为选定用户启用收集。覆盖值在您的应用程序启动期间保持不变,因此 Crashlytics 可以自动收集该应用程序实例未来启动的报告。要选择退出自动崩溃报告,请将 false 作为覆盖值传递。当设置为 false 时,新值直到应用程序的下一次运行才会应用。

这是文档的链接https://firebase.google.com/docs/crashlytics/customize-crash-reports?platform=android#enable-reporting

  • 要在调试模式下禁用崩溃日志,您必须传递 `!BuildConfig.DEBUG`。仅对签名版本启用“FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(!BuildConfig.DEBUG);”,因此该值将为 false,并且只会记录发布版本的崩溃。 (3认同)
  • 由于 Crashlytics 默认启用,我更喜欢这样:`if (BuildConfig.DEBUG) { FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(false) }` (2认同)

ADM*_*ADM 35

我前段时间尝试过一次,这对我有用。将此添加到build.gradle.

android {
  buildTypes {
     debug {
        manifestPlaceholders = [crashlyticsCollectionEnabled:"false"]
        ...
     }

    release {
        manifestPlaceholders = [crashlyticsCollectionEnabled:"true"]
        ...
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

然后在 manifest 中设置这个属性。

<meta-data
        android:name="firebase_crashlytics_collection_enabled"
        android:value="${crashlyticsCollectionEnabled}" />
Run Code Online (Sandbox Code Playgroud)

如果您也手动登录,那么您可以在运行时使用这样的东西:-

FirebaseCrashlytics.getInstance().recordException(RuntimeException("Invalidtoken"))
Run Code Online (Sandbox Code Playgroud)

检查一下

  • 添加清单占位符代替替换所有占位符的更安全方法是:“manifestPlaceholders.firebasecrashlyticsCollectionEnabled = false” (3认同)