开发环境
本文以Win10电脑,AndroidStudio3.5.3为开发工具,使用安卓手机开发纯Flutter应用(非原生Flutter混合开发)为例。
先看图
Flutter Hot Reload生效时
Flutter Hot Reload模式.pngFlutter Hot Reload不生效时
非Flutter Hot Reload模式.pngFlutter Inspector查看控件
FlutterInspector.pngDart DevTools
DartDevTools.png打印日志与查看日志输出
输出日志
可以使用 void print(Object object)
或者external bool debugger({bool when: true, String message});
方法向控制台输出日志信息,这两个方法,在安卓上,无论是debug还是release模式都会打印日志。
查看日志
点击Run按钮把应用运行到手机后 Flutter Hot Reload生效时,Run和Logcat面板都会打印print日志,Terminal面板默认不输出print日志,但是运行flutter logs
命令后也可以打印print日志
Run和Logcat面板适合开发过程中查看日志
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(...);调试模式下,条件不成立时,抛异常
其他调试技巧
整理中
网友评论