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

Posted

技术标签:

【中文标题】Firebase Crashlytics 在手动启用时不报告崩溃【英文标题】:Firebase Crashlytics not reporting crashes when manually enabled 【发布时间】:2019-05-12 11:49:30 【问题描述】:

Crashlytics 无需选择加入报告即可正常工作。但是,一旦我根据tutorial 设置选择加入报告,它就会停止报告任何内容。

具体来说,我在androidManifest.xml添加了如下内容

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

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

 Fabric.with(this, Crashlytics())

使用调试器,我确信上面的行已经被执行了。

但是,没有向 Crashlytics 报告任何内容。相反,记录器提供以下内容,

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: Crashlytics is disabled, because data collection is disabled by Firebase. 这可能是问题的原因。但是我找不到有关此日志的任何信息。

【问题讨论】:

我遇到了完全相同的问题,似乎是 2.9.7 版中的一个错误。使用该版本,如果 Crashlytics 在清单中被禁用,则无法以编程方式启用它。使用 2.9.6 相同的代码可以完美运行。 @gicci 降级到 2.9.6 使它工作!你应该写这个作为答案,我会接受的:)谢谢! 原因可能是你需要从fabric迁移 确保先使用元标记然后升级,在我的情况下代码太旧并且元标记是错误的。 【参考方案1】:

Firebase Crashlytics 2.9.7 存在一个问题,无法按照文档中的说明选择加入报告:无法从代码中启动 Crashlytics。 暂时降级到 2.9.6 将使您的代码能够正常工作。

【讨论】:

这让我发疯了 在我在这里看到这个问题之前对我来说是一样的。无论如何,我联系的 Firebase 支持也确认了该错误。 这在 2.10.1 中解决了吗?因为我仍然面临这个问题 我面对的是 2.10.1。降级到 2.9.6 解决了这个问题。难道这个错误只出现在最近创建的firebase项目中?我们有一个适用于 2.10.1 的旧项目,但我们的新项目仅适用于 2.9.6【参考方案2】:

请按照这个答案 https://***.com/a/59906454/6743289

对于那些希望在他们的 android 应用程序中使用 crashlytics 且尚未使用 Fiber.io 的 crashlytics 的人,您可以在上面的链接中找到 FirebaseApp 初始化方式的某些变化。

【讨论】:

【参考方案3】:

对 android 使用以下依赖项。 将其粘贴到 build.gradle 应用中:

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

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

【讨论】:

【参考方案4】:

将此行添加到应用程序类中

Fabric.with(this, Crashlytics())

【讨论】:

您好,谢谢您的回复,但我已经将此添加到我的活动的onCreate 中,并且我可以确认此行已执行,正如我在问题中提到的那样。【参考方案5】:

Crashlytics 2.9.8 已发布,修复了该错误。我已经测试确认。 changelog:

2.9.8 2018 年 12 月 21 日

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

【讨论】:

面临 2.10.1 中的问题。我正在使用这一行进行测试 'Crashlytics.getInstance().crash();' @DKV 是的,它在延迟一段时间后才起作用。我在多模块应用程序中遇到了困难。 @Ravi Yadav:对我来说,调试构建工作完美。但不是发布 @DKV 邀请你聊天【参考方案6】:

在任何地方都没有提到应用程序的初始化以在我们的控制台上获取崩溃分析报告!

第 1 步。首先按照官方文档的链接包含所有依赖项,因为它在那里给出,并通过 firebase 控制台设置您的 firebase 应用程序。

第 2 步。现在在您的基础应用程序类或基础活动类中进行以下初始化。

FirebaseApp.initializeApp(getApplicationContext()); FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(true); 现在清理你的项目并进行几次强制崩溃,你应该能够在你的 firebase 控制台上看到你的 crashlytics 报告

【讨论】:

以上是关于Firebase Crashlytics 在手动启用时不报告崩溃的主要内容,如果未能解决你的问题,请参考以下文章

如何安装 Firebase Crashlytics Swift 3.0

如何将映射文件上传到 Firebase Crashlytics?

适用于 iOS 的 Firebase Crashlytics:关闭非符号化问题

firebase_crashlytics 已解析为 2.2.1,这取决于 Firebase/Crashlytics (= 8.6.0)

如何在 iOS 上使用 Firebase 以编程方式获取 Crashlytics 版本

在 IOS 上设置 Firebase Crashlytics