在做Flutter开发的时候,它带有热重启/重新加载的功能,但混合开发中在Android项目中集成了Flutter项目,Flutter的热重启/重新加载功能好像失效了,重启加载的步骤
-
打开一个模拟器,或连接一个设备到电脑上;
-
关闭我们的APP,然后运行flutter attach;
$ cd flutter_hybrid/flutter_module
$ flutter attach
Waiting for a connection from Flutter on Nexus 5X...
如果,你同时有多个模拟器或连接的设备,运行flutter attach会提示你选择一个设备:
ndroid SDK built for x86 • emulator-5554 • android-x86 • Android 8.1.0 (API 27) (emulator) iPhone X • 3E3FA943-715F-482F-B003-D46F5902C56C • ios • iOS 12.1 (simulator)
接下来我们需要flutter attach -d来指定一个设备: -d后面跟的设备ID。
flutter attach -d 'emulator-5554'
运行APP,然后你会看到:
$ flutter attach
More than one device connected; please specify a device with the '-d <deviceId>' flag, or use '-d all' to act on all devices.
Android SDK built for x86 • emulator-5554 • android-x86 • Android 8.1.0 (API 27) (emulator)
iPhone X • 3E3FA943-715F-482F-B003-D46F5902C56C • ios • iOS 12.1 (simulator)
jphdeMacBook-Pro:flutter_module jph$ flutter attach -d 'emulator-5554'
Waiting for a connection from Flutter on Android SDK built for x86...
Done.
Syncing files to device Android SDK built for x86... 1,744ms
? To hot reload changes while running, press "r". To hot restart (and rebuild state), press "R".
An Observatory debugger and profiler on Android SDK built for x86 is available at: http://127.0.0.1:60324/
For a more detailed help message, press "h". To detach, press "d"; to quit, press "q".
说明连接成功了,接下来就可以通过上面的提示来进行热加载/热重启了,在终端输入:
-
r : 热加载;
-
R : 热重启;
-
h : 获取帮助;
-
d : 断开连接;
调试Dart代码
混合开发的模式下,高效调试代码的方式:
-
关闭APP
-
点击AndroidStudio的Flutter Attach按钮(需要首先安装Flutter与Dart插件)
-
启动APP