Firebase Crashlytics在手动启用时无法报告崩溃

14

即使没有选择加入报告,Crashlytics仍然可以正常工作。但是一旦按照教程设置加入报告,它就不再报告任何内容。

具体而言,我将以下内容添加到AndroidManifest.xml中:

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

我在onCreate中添加了以下内容:

 Fabric.with(this, Crashlytics())

使用调试器,我可以确定上面的代码已经执行。

然而,Crashlytics 并没有报告任何错误。相反,日志记录器(logger)显示以下内容:

D/Fabric: Falling back to Crashlytics key lookup from Manifest
D/Fabric: Falling back to Crashlytics key lookup from Strings
D/Fabric: Generating Crashlytics ApiKey from google_app_id in Strings
D/Fabric: Using AdvertisingInfo from Preference Store
D/Fabric: Falling back to Crashlytics key lookup from Manifest
D/Fabric: Falling back to Crashlytics key lookup from Strings
D/Fabric: Build ID is: ...
D/CrashlyticsCore: Crashlytics is disabled, because data collection is disabled by Firebase.
D/Fabric: Initializing io.fabric.sdk.android:fabric [Version: 1.4.6.29], with the following kits:
    com.crashlytics.sdk.android:crashlytics [Version: 2.9.7.29]
    com.crashlytics.sdk.android:beta [Version: 1.2.10.27]
    com.crashlytics.sdk.android:answers [Version: 1.4.5.29]
    com.crashlytics.sdk.android.crashlytics-core [Version: 2.6.6.29]
D/Fabric: Not fetching settings, because data collection is disabled by Firebase.
D/Fabric: Falling back to Crashlytics key lookup from Manifest
D/Fabric: Falling back to Crashlytics key lookup from Strings
D/Fabric: Build ID is: ...
D/Fabric: Analytics collection disabled, because data collection is disabled by Firebase.
D/Fabric: Could not get parcel from Google Play Service to capture AdvertisingId
D/Fabric: Could not get parcel from Google Play Service to capture Advertising limitAdTracking
D/Fabric: AdvertisingInfo not present
D/Fabric: Asychronously getting Advertising Info and storing it to preferences

我注意到了这条有趣的记录:D/CrashlyticsCore: 因为 Firebase 禁用了数据收集,Crashlytics 被禁用。这可能是问题的根源。但我找不到有关该日志的任何信息。


2
我遇到了完全相同的问题,看起来这是2.9.7版本中的一个bug。在该版本中,如果在清单文件中禁用了Crashlytics,则无法通过编程方式启用它。使用2.9.6时,相同的代码可以完美地工作。 - gxcare
@gicci 降级到2.9.6后它可以工作了!你应该把这写成一个答案,我会接受它 :) 谢谢! - Null
可能的原因是您需要从Fabric迁移。 - NickUnuchek
先确保元标签,然后再升级。在我的情况下,代码太旧了,而且元标签是错误的。 - Alok Vishwakarma
8个回答

14

Firebase Crashlytics 2.9.7 存在问题,无法如文档所述启动 opt-in 报告功能:从代码中启动 Crashlytics 将无法执行。 目前降级至 2.9.6 版本可使您的代码正常工作。


1
这真让我疯了。 - FrankMonza
直到我在这里看到这个问题,我才发现我的情况也是一样的。无论如何,我联系了Firebase支持团队,他们也确认了这个错误。 - gxcare
4
这个问题在2.10.1版本中解决了吗?因为我仍然遇到了这个问题。 - Ravi Yadav
我遇到了与2.10.1相同的问题。将版本降级到2.9.6可以解决这个问题。这个bug只会出现在较新的Firebase项目中吗?我们有一个旧项目可以使用2.10.1,但我们的新项目只能用2.9.6。 - lilienberg

2
请按照以下答案操作:https://dev59.com/MrHma4cB1Zd3GeqPSOCW#59906454
如果您想在Android应用程序中使用crashlytics,但以前没有使用过fiber.io的crashlytics,则需要进行FirebaseApp初始化方面的某些更改,请参考上述链接。

1

使用以下依赖项进行 Android 开发。
将其粘贴到 build.gradle 应用程序中:

implementation('com.crashlytics.sdk.android:crashlytics:2.9.6@aar') {
transitive = true
}

将其从2.9.5升级到2.9.6。
对我有效。


0
将此行代码添加到Application类中。
Fabric.with(this, Crashlytics())

你好,感谢您的回复,但我已经将这个代码添加到我的活动的“onCreate”中,并且我可以确认这行代码已经被执行了,正如我在问题中所提到的。 - Null

0

在我们的控制台上获取Crashlytics报告没有提及应用的初始化!

步骤1。首先按照官方文档链接中给出的方式包含所有依赖项,并通过Firebase控制台设置您的Firebase应用程序。

步骤2。现在在您的基本应用程序类或基本活动类中执行以下初始化。

FirebaseApp.initializeApp(getApplicationContext()); FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(true); 现在清除您的项目并进行一些强制崩溃几次,您应该能够在Firebase控制台上看到您的Crashlytics报告。


0
已发布Crashlytics 2.9.8版本,修复了该错误。我已经进行测试以确认。 修改日志

2018年12月21日2.9.8

  • 修复firebase_crashlytics_collection_enabled标志的错误,该错误在某些情况下错误地禁用了数据收集。

3
遇到了2.10.1版本的问题。我正在使用这行代码进行测试:“Crashlytics.getInstance().crash();”。 - Ravi Yadav
@DKV 是的,经过一些延迟后它起作用了。我在多模块应用程序中遇到了困难。 - Ravi Yadav
@Ravi Yadav:对我来说,调试版本可以完美运行。但是发布版本却不行。 - DKV
@DKV 邀请您进行聊天。 - Ravi Yadav

0

我遇到了相同的问题。我按照测试您的Crashlytics实现来调试这个问题。

设置 FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(true) 解决了这个问题,尽管我本以为默认情况下应该是这样的。


0
如果您已经完成添加依赖项和其他步骤,但仍然无法正常工作,那么您可以打开您的互联网连接,然后尝试崩溃,将会报告到 Firebase 仪表板中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接