其他分享
首页 > 其他分享> > android – 没有调用CrashlyticsListener

android – 没有调用CrashlyticsListener

作者:互联网

我正在使用此代码来跟踪应用程序崩溃的时间:

val core = CrashlyticsCore
                .Builder()
                .listener {
                    Log.d("***", "Crash happened")
                }
                .build()
        val crashlyticsKit = Crashlytics
                .Builder()
                .core(core)
                .build()
        // Initialize Fabric with the debug-location_inactive crashlytics.
        Fabric.with(context, crashlyticsKit)

我正在使用抛出NullPointerException()和Crashlytics.getInstance().crash()来测试它.他们都没有打电话给听众.当应用程序再次启动时,它位于日志中:

I/CrashlyticsCore: Initializing Crashlytics 2.6.1.23
I/CrashlyticsInitProvider: CrashlyticsInitProvider initialization successful
D/FirebaseApp: com.google.firebase.crash.FirebaseCrash is not linked. Skipping initialization.
I/CrashlyticsCore: Crashlytics report upload complete: SOME-LETTERS-AND-NUMBERS

我究竟做错了什么?

编辑
我使用How to show a Dialog after crash by using Crashlytics?中的代码作为我的模板,但似乎API略有变化(在这个答案中,它实例化为一个类,但现在它是一个监听器,见docs)

解决方法:

默认情况下,Firebase Crashlytics使用内容提供程序hack自动初始化自身(com.crashlytics.android.CrashlyticsInitProvider注入到合并的AndroidManifest中).

根据documentation自动初始化可以用元数据标记重写:

<manifest>
    <application>

        <meta-data
            android:name="firebase_crashlytics_collection_enabled"
            android:value="false" />

    </application>
</manifest>

现在调用Fabric.with(context,crashlyticsKit)实际上会初始化sdk并且应该正确触发侦听器.

标签:google-fabric,android,firebase,crashlytics
来源: https://codeday.me/bug/20190827/1745055.html