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