如何从Flutter获取堆栈跟踪?

9

我有一个使用Flutter在Visual Studio Code中开发的Android/iOS应用程序。当我在Android >=5.0或任何版本的iOS上运行它时,它运行得非常流畅,但是当我在Android 4.x上运行它时,它会立即崩溃(“很抱歉,应用已停止”)。

我想要修复它,但是Flutter没有显示给我发生了什么。

我尝试通过VSCode按F5按钮运行,也尝试使用命令行flutter run,但两者都没有显示出我可以处理的内容。我尝试使用trace命令[Flutter trace run]运行,但它说--debug-port参数必须被指定,我不知道它是什么意思。

我只需要一个堆栈跟踪或一行错误,告诉我问题出在哪里。我需要在VSCode上进行一些配置吗?


1
对于Flutter代码,您可以使用https://github.com/flutter/sentry。对于iOS,您可以尝试https://github.com/flutter/flutter/issues/20998#issuecomment-418845807,对于在运行应用程序时运行`adb logcat`的Android,应提供更多详细信息。 - Günter Zöchbauer
1
你可以通过命令adb logcat绕过它,直接从设备读取日志。https://developer.android.com/studio/command-line/logcat - Blundell
感谢Günter和Blundell!使用logcat,我发现了“Exception thrown during pause android.os.DeadObjectException”。虽然不知道如何修复它,但现在我能够处理它了。 - Notheros
对于安卓系统,您可以在终端中输入 cd android 然后输入 ./gradlew build --stacktrace - Elmer
你可以使用 StackTrace.current - 我认为这个问题是一个重复的问题:https://dev59.com/cmYr5IYBdhLWcg3wFGZS - 无论如何,我给出的答案已经在那里了。 - kris
2个回答

2
根据版本1.51.1,Visual Studio Code中提供了调试控制台。您可以通过导航菜单View > Debug Console来启用/禁用该功能。Android模拟器和iOS模拟器的日志都可以在调试控制台上显示。
但是,如果您想在Visual Studio Code之外检查Flutter调试日志,则可以使用终端中的adb logcat命令来检查Android设备,如评论中先前提到的。
在iOS上,检查日志的一种方法是通过"Console"。按下⌘ + space并输入"Console",然后按Enter启动应用程序。iOS设备应该显示在Console应用程序的左侧窗格下的Devices下。点击iOS设备应该会显示它的日志。

0
在控制台中使用flutter run --verbose运行应用程序,您将获得完整的堆栈跟踪。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接