Crashlytics 在没有选择加入报告的情况下也能正常工作。但一旦我根据教程设置了选择加入报告,它就会停止报告任何内容。
具体来说,我在
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.
,这可能是问题的原因。但我找不到有关此日志的任何信息。
Firebase Crashlytics 2.9.7 存在一个问题,阻止文档中所述的选择加入报告正常工作:不会执行从代码启动 Crashlytics。 暂时降级到 2.9.6 将使您的代码能够正常工作。
请遵循此答案 https://stackoverflow.com/a/59906454/6743289
对于那些希望在其 Android 应用程序中使用 crashlytics 但尚未使用 Fiber.io 的 crashlytics 的人,FirebaseApp 的初始化方式存在某些变化,您可以在上面的链接中找到这些变化。
对 Android 使用以下依赖项。
将其粘贴到 build.gradle 应用程序中:
implementation('com.crashlytics.sdk.android:crashlytics:2.9.6@aar') {
transitive = true
}
从2.9.5升级到2.9.6。
它对我有用。
将此行添加到应用程序类中
Fabric.with(this, Crashlytics())
Crashlytics 2.9.8 已发布,修复了该错误。我已经测试确认过。 变更日志:
2018年12月21日2.9.8
- 修复了 firebase_crashlytics_collection_enabled 标志的错误,该错误在某些情况下错误地禁用了数据收集。
在我们的控制台上获取崩溃报告的任何地方都没有提到应用程序的初始化!
步骤1。首先按照官方文档的链接包含其中给出的所有依赖项,并通过 Firebase 控制台设置您的 Firebase 应用程序。
步骤 2。现在在您的基础应用程序类或基础活动类中执行以下初始化。
FirebaseApp.initializeApp(getApplicationContext()); FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(true); 现在清理您的项目并执行几次强制崩溃,您应该能够在 Firebase 控制台上看到您的 crashlytics 报告
我也有同样的问题。我按照测试您的 Crashlytics 实现来调试该问题。
设置
FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(true)
解决了这个问题,尽管我预计它默认会这样做
如果您已完成添加依赖项,但其他步骤仍然不起作用,则意味着您可以打开互联网,然后尝试崩溃,它将报告到 Firebase 仪表板中。
仅此而已...祝您编码愉快...