Firebase crashlytics 仍然悬而未决
Posted
技术标签:
【中文标题】Firebase crashlytics 仍然悬而未决【英文标题】:Firebase crashlytics still pending flutter 【发布时间】:2021-12-10 20:21:36 【问题描述】:我想在 firebase crashlytics 中跟踪我的颤振 android/ios 崩溃,但在跟踪应用程序的第一次崩溃时出现问题,它仍在侦听第一次崩溃。
在 pubspec.yaml 中
firebase_crashlytics:
firebase_analytics:
firebase_core: ^1.7.0
在应用程序 build.gradle 中
apply plugin: 'com.google.gms.google-services'
apply plugin: 'com.google.firebase.crashlytics'
apply plugin: 'io.fabric'
在 build.gradle 中
buildscript
repositories
google()
jcenter()
maven
url 'https://maven.fabric.io/public'
dependencies
classpath 'com.google.gms:google-services:4.3.0'
classpath 'io.fabric.tools:gradle:1.26.1'
classpath 'com.android.tools.build:gradle:4.1.0'
在颤振的 main.dart 中:
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
await FirebaseCrashlytics.instance
.setCrashlyticsCollectionEnabled(true);
FirebaseCrashlytics.instance.setUserIdentifier("51");
FlutterError.onError = FirebaseCrashlytics.instance.recordFlutterError;
FirebaseCrashlytics.instance.crash();
我什至尝试过 android native example crash throw new RuntimeExeption("test Firebase crash");
但 firebase 仍在监听第一次应用崩溃。
更新
Firebase Crashlytics 页面在 48 小时后就像下面这样
pending image
【问题讨论】:
【参考方案1】:尝试过滤非致命错误,因为应用程序的颤动部分会生成非致命错误。
转到firebase控制台-> crashlytics->过滤器->然后选择->
这是我的依赖项:
dependencies
classpath 'com.android.tools.build:gradle:4.1.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.gms:google-services:4.3.4'
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.5.0'
和实现
dependencies
...
implementation 'com.google.firebase:firebase-messaging:21.0.1'
implementation 'com.google.firebase:firebase-crashlytics:17.3.1'
...
【讨论】:
谢谢!但你能再解释一下吗?我的意思是我应该在哪里实际过滤它?它在我的 Firebase 控制台中吗?或者别的什么 @HusseinDTS 它是 firebase 控制台,我编辑了答案 好的,但我什至无法访问该页面。正如我在问题更新中提到的,这是一个待处理的页面 你添加Json文件了吗?? 是的,我什至尝试通过再次下载来更新 google-service.json。我可以收到通知【参考方案2】:Firebase.initializeApp().then((_) async
//enable Crashlytics only when app in release & production
await FirebaseCrashlytics.instance.setCrashlyticsCollectionEnabled(!kDebugMode);
//another code here
如果您想始终捕获任何崩溃,请将 !kDebugMode 更改为 true。
【讨论】:
还是一样。什么都没有发生【参考方案3】:我认为您可以在代码中使用这一行。因为这一行,我认为您无法获得崩溃报告。我面临同样的问题..下面的代码工作得很好
implementation 'com.google.firebase:firebase-crashlytics:17.3.1'
在 app.build.gradle 中使用此代码
dependencies
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'com.android.billingclient:billing:3.0.2'
implementation platform('com.google.firebase:firebase-bom:29.0.4')
implementation 'com.google.firebase:firebase-analytics'
apply plugin: 'com.google.firebase.crashlytics'
apply plugin: 'com.google.gms.google-services'
在 Android.build.gradle 中
dependencies
classpath 'com.android.tools.build:gradle:4.1.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.8.1'
classpath 'com.google.gms:google-services:4.3.5'
在你的 main.dart 中使用这个代码
Future main() async
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
FlutterError.onError = FirebaseCrashlytics.instance.recordFlutterError;
runApp(
MyApp(),
);
我把这条线放在 Splash init 函数中使应用程序崩溃。你可以 在你认为合适的地方使用这条线
FirebaseCrashlytics.instance.crash();
【讨论】:
以上是关于Firebase crashlytics 仍然悬而未决的主要内容,如果未能解决你的问题,请参考以下文章
firebase_crashlytics 已解析为 2.2.1,这取决于 Firebase/Crashlytics (= 8.6.0)
使用 firebase-crashlytics-gradle 的 Crashlytics 上传失败
如何使用 Firebase (Crashlytics) 记录非致命(捕获)异常
如何在 iOS 上使用 Firebase 以编程方式获取 Crashlytics 版本
使用 Firebase/Crashlytics 更改 Fabric 和 Crashlytics pod 以上传缺少的必需 dSYM