【问题标题】:New Firebase Crashlytics disable in debug mode新的 Firebase Crashlytics 在调试模式下禁用
【发布时间】:2020-10-05 17:29:33
【问题描述】:

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

面料:

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

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

还有CrashlyticsCore 类不再有.Builder() 可用

【问题讨论】:

    标签: android firebase crashlytics


    【解决方案1】:

    要以编程方式在应用程序类中使用以下代码

    FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(!BuildConfig.DEBUG)
    //enabled only for signed builds
    

    通过在运行时调用 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 并且它只会记录发布版本的崩溃。
    • 由于默认启用 Crashlytics,我更喜欢这个:if (BuildConfig.DEBUG) { FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(false) }
    【解决方案2】:

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

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

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

    <meta-data
            android:name="firebase_crashlytics_collection_enabled"
            android:value="${crashlyticsCollectionEnabled}" />
    

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

    FirebaseCrashlytics.getInstance().recordException(RuntimeException("Invalidtoken"))
    

    还有Check this out

    【讨论】:

    • 添加清单占位符代替全部替换的更安全方法是:manifestPlaceholders.firebasecrashlyticsCollectionEnabled = false
    • @sosite 你能告诉我应该在哪个标签中添加这一行吗?
    • @Tanjimahmed 您直接在debugrelease 构建类型中使用它
    猜你喜欢
    • 2019-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多