如何使 Android 和 iOS 的 Flutter App 崩溃(以测试 Firebase Crashlytics)?

Posted

技术标签:

【中文标题】如何使 Android 和 iOS 的 Flutter App 崩溃(以测试 Firebase Crashlytics)?【英文标题】:How to crash Flutter App for Android and iOS (to test Firebase Crashlytics)? 【发布时间】:2019-09-01 00:01:08 【问题描述】:

我想在我的Flutter 应用程序中使用Firebase Crashlytics 测试崩溃报告。我需要以编程方式致命地崩溃我的flutter 应用程序,适用于 androidios。有什么想法吗?

【问题讨论】:

【参考方案1】:

如果你有flutter_crashlytics 插件,你可以使用

FirebaseCrashlytics.instance.crash();

【讨论】:

我已经尝试过了,但没有以其他方式在 Firebase 控制台中显示任何崩溃? 我们想发送关于我们自己造成的崩溃的信息,而不是包。我们怎样才能做到这一点?【参考方案2】:

您应该能够通过在 Flutter 应用程序的任何位置执行此操作来引发 Dart 异常:

throw Exception("This is a crash!");

或者通过使用任意对象:

throw "This is a crash!";

您可以找到有关 dart 异常 in the language tour 的更多信息,如果需要,您可以创建自己的自定义异常类型,如 this SO answer 中所述

【讨论】:

通过抛出这种异常应用程序不会崩溃但会在屏幕上显示异常。 @BrindaRathod 你是对的,这不应该是批准的答案,因为它令人困惑......【参考方案3】:

整合firebase_crashlytics

 Crashlytics.instance.crash();

【讨论】:

【参考方案4】:

使用 firebase_crashlytics 插件

FirebaseCrashlytics.instance.crash();

您应该启用 crashlytics

void main() async
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  if (kDebugMode) 
    FirebaseCrashlytics.instance.setCrashlyticsCollectionEnabled(true);//disable false
  else
    FirebaseCrashlytics.instance.setCrashlyticsCollectionEnabled(true);
  

【讨论】:

【参考方案5】:

尝试在不初始化列表的情况下添加任何值。会出现应用崩溃并给出这个错误The method 'add' was called on null.

List list;

list.add("add");

【讨论】:

【参考方案6】:

您可以通过多种方式使 Flutter 应用崩溃:

    throw(Exception('Hello Crashlytics')); 就像在@Xavi Rigau 的回答中一样
List list;

list.add("add");

就像@Paresh Mangukiya 所做的那样。

3.

final a = [12];
print(a[1]);

但您应该考虑 2 个重要

您应该在发布模式下运行您的应用程序,例如使用命令flutter run --release 在 Crashlytycs 控制台中,默认情况下仅显示致命崩溃。上面的崩溃是非致命的崩溃。因此,您应该清除过滤器以查看所有崩溃类型。 (可以通过单击过滤器附近的 (x) 按钮在 crashlytics 仪表板中过滤过滤器)。更多关于这方面的内容,您可以阅读this SO answer

【讨论】:

【参考方案7】:

看看这个。这是来自官方文档。 https://firebase.flutter.dev/docs/crashlytics/usage

根据 crashlytics 的文档,一旦您的配置正确,FirebaseCrashlytics.instance.crash();会使应用程序崩溃。

【讨论】:

以上是关于如何使 Android 和 iOS 的 Flutter App 崩溃(以测试 Firebase Crashlytics)?的主要内容,如果未能解决你的问题,请参考以下文章

如何使 Android 和 iOS 的 Flutter App 崩溃(以测试 Firebase Crashlytics)?

Flutter

如何使我的 Android Swipeable CardView 更像 IOS 7 邮件应用程序(滑动以显示按钮)

Flutter之SchedulerBinding简析

MLKit 旋转面部图像使其笔直(iOS 和 Android)

如何让 Flutter 应用在​​ android 导航栏后面绘制并使导航栏完全透明?