如何使 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
应用程序,适用于 android 和 ios。有什么想法吗?
【问题讨论】:
【参考方案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)?
如何使我的 Android Swipeable CardView 更像 IOS 7 邮件应用程序(滑动以显示按钮)