【问题标题】:How to Crashlytics to Timber in debug mode如何在调试模式下 Crashlytics 到 Timber
【发布时间】:2020-02-28 17:02:33
【问题描述】:

您好,我希望将 Crashlytics 中的内容(包括 setInt、setString 等)报告给 Logcat(通过 Timber,但也可以直接通过 Log)。在调试期间,我还想防止 Crashlytics 向服务器报告崩溃。

我首先尝试覆盖 CharlyticsCore 中的方法:

    // From Crashlytics to Timber
    val cc = object : CrashlyticsCore() {
        override fun log(msg: String?) { Timber.tag("CrashlyticsLog").d(msg) }
        override fun logException(throwable: Throwable?) { Timber.e(throwable) }
        // setInt, setFloat etc. call setString
        override fun setString(key: String?, value: String?) { Timber.tag(key).d(value) }
    }

    Fabric.with(appContext, Crashlytics.Builder().core(cc).build()

但是我在 logcat 中没有看到任何报告,只是初始化报告:

I/CrashlyticsCore: Initializing Crashlytics Core 2.7.0.33
I/CrashlyticsInitProvider: CrashlyticsInitProvider initialization successful
W/CrashlyticsCore: Received null settings, skipping report submission!
TimberOnlyTest online

【问题讨论】:

    标签: android debugging crashlytics logcat timber-android


    【解决方案1】:

    您需要显式登录到 logcat。这是我的树的一个例​​子。

    inner class DebugCrashReportingTree : Timber.DebugTree() {
    
           override fun log(priority: Int, tag: String?, message: String, 
           throwable: Throwable?) {
            if (priority == Log.VERBOSE) {
                return
            }
           //print to logcat
            Log.println(priority, tag, message)
    
            Crashlytics.log(priority, tag, message)
            val t = throwable ?: Exception(message)
            Crashlytics.logException(t)
        }
    }
    

    然后在你的 Application 类 onCreate 中这样设置

    Timber.plant(DebugCrashReportingTree())

    【讨论】:

    • 我想反其道而行之(从 Crashlytics 到 Timber)
    猜你喜欢
    • 2019-07-14
    • 2020-10-05
    • 1970-01-01
    • 1970-01-01
    • 2012-06-30
    • 2021-06-09
    • 2010-11-12
    • 2018-04-03
    • 2018-04-20
    相关资源
    最近更新 更多