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

Fabric Crashlytics 到 Firebase Crashlytics 迁移询问 dSYMs 文件