Flutter开发嵌入式Linux真机调试

前边文章叙述了flutter开发嵌入式linux的流程,以及两种数据交互方式的验证,请参阅:

flutter嵌入式arm64 linux, Flutter嵌入式arm64 linux数据交互方式验证(共享内存、GRPC)

本文介绍如何进行arm linux板子的真机调试

真机调试

1创建真机连接配置文件

参考Remote target devices · sony/flutter-elinux Wiki · GitHub,在~目录下创建一个隐藏文件,.flutter_custom_devices.json,使用flutter-elinux devices查看是否成功创建了真机的连接;

2打debug包

如上release包一样,使用如下命令创建debug打包shell文件,添加权限,然后执行打包命令:

flutter-elinux build elinux --target-arch=arm64 \
      --target-compiler-triple=aarch64-buildroot-linux-gnu \
      --target-sysroot=/home/root1/buildroot/output/staging \
      --target-compiler-flags=--gcc-toolchain=/home/root1/buildroot/output/host \
      --debug

打包完成后,执行flutter-elinux run –d deviceId, deviceId就是上一步中配置文件中的id

2.4.3 可能出现的问题

问题1

[ERROR][ELinuxWindowWayland(1066)] Failed to connect to the Wayland display.

[ERROR][CreateRenderSurface(1338)] Wayland display is invalid.

首先在板子上执行:weston-simple-egl,看能否跳出来wayland的动画示例,然后执行weston &,查看XDG_RUNTIME_DIR绑定的路径和.flutter_custom_devices.json绑定的一致,如下截图:

2.4.4 快速调试

以上方式自动化程度高,本人测试只能自动化部署到板子并且启动,不能让vsCode连接到vmService,并且通过ssh传输文件很慢,尤其是传输debug包(160MB)的时候,要几分钟才能传输成功,非常慢,所以最好是使用ftp直接传输,详细步骤:

  1. 打包部署,参照2.4.2,对项目进行打包,然后打开虚拟机中的资源管理器,如下图进行连接:

连接成功以后进入程序部署目录,然后将打好的包从虚拟机中拷贝到板子部署目录;

  1. 启动可执行文件,使用HyperTerminal连接板子(或者直接使用ssh),启动flutter可执行文件,如下图:

  1. 拷贝vmService的启动地址http://127.0.0.1:42801/fzgpO39Wp1E=/ 到虚拟机中的vscode的launch.json中的attach项,如下图

  1. 端口转发,在虚拟机中执行如下指令,将虚拟机的端口转发到嵌入式板子的对应端口,为下一步attach做准备;

ssh -L 42801:127.0.0.1:42801 root@192.168.4.72

  1. 启动attach,在虚拟机中,vscode的Run and Debug中选择Attach,然后启动,如下图:

如下图就能连接成功了,可以打断点进行调试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值