阅读 82

Flutter系列笔记-8:Flutter开发调试技巧

开发环境

本文以Win10电脑,AndroidStudio3.5.3为开发工具,使用安卓手机开发**纯Flutter应用(非原生Flutter混合开发)**为例。

先看图

Flutter Hot Reload生效时

Flutter Hot Reload模式.png

Flutter Hot Reload不生效时

非Flutter Hot Reload模式.png

Flutter Inspector查看控件

FlutterInspector.png

Dart DevTools

DartDevTools.png

打印日志与查看日志输出

输出日志

可以使用 void print(Object object) 或者external bool debugger({bool when: true, String message});方法向控制台输出日志信息,这两个方法,在安卓上,无论是debug还是release模式都会打印日志。

查看日志

点击Run按钮把应用运行到手机后 Flutter Hot Reload生效时,RunLogcat面板都会打印print日志,Terminal面板默认不输出print日志,但是运行flutter logs命令后也可以打印print日志

RunLogcat面板适合开发过程中查看日志

Terminal面板查看日志适合已经安装好正在使用的应用,无须重新编译安装的情况下查看日志

打断点

安装flutter应用可以使用以下命令

flutter run --release

flutter run --profile

flutter run

只有Run按钮(等同flutter run命令)安装出来的应用是可以打断点的,flutter run --release flutter run --profile模式不支持打断点,

打断点时,需要确保手机已经连接成功,

可以在Debug面板查看是否连接上

Connected.png

如果没有连接上,可以Run -> Flutter Attach连接设备(需要Flutter应用正在打开)

连接设置成功状态下,只要点击代码左侧打一个断点,代码运行到那行代码就可以停下来。

debugger调试

external bool debugger({bool when: true, String message}); 当处于调试模式下(不需要连接电脑),非flutter run --release flutter run --profile模式下,只要when条件成立,应用就会停下来,整个应用卡住不能操作。当手机没有连接应用后,点击 Run ->Flutter Attach菜单 ,连接手机成功后,可以直接断点到debugger语句的下一行

assert调试模式断言

assert(...);调试模式下,条件不成立时,抛异常

其他调试技巧

整理中