android - QT android + 远程调试
问题描述
我一直在尝试为 Qt 设置 ADB 远程调试。设想:
- 带 QT 的远程开发服务器
- 连接电话的本地笔记本电脑
解决方案:我通过远程端口转发 SSH 会话对端口 5037(默认 adb 端口)上的所有流量进行隧道传输。工作正常。我执行的命令:
# Kill old adb server.
devhost$ adb kill-server
# Activate adb server on client
laptop$ adb start-server
# Start ssh tunnel. Hide/minimize this window not to close it by accident
laptop$ ssh -XC -R 5037:localhost:5037 <your devhost machine>
QT 开发。服务器检测到手机,尝试部署。
应用程序被部署。结果感觉很好。~~ 开发服务器在另一个国家。从服务器一直到我的办公桌都是光纤……但没那么快…… 当突然间 QT 大喊无法与 localhost:5039 连接时
5039?它有什么用?我尝试调谐 5039,但我基本上处于盲点。错误消失了,但应用程序卡在等待调试器,并且没有来自 QT 的进一步消息,没有错误。
没有什么。它只是无限期地挂起。
在移动设备上,底部有标准等待调试器消息。(注意:该应用程序由 qt 部署并启动)。
想法?
日志中唯一的信息性消息是:
W ActivityThread:应用程序 org.qtproject.APPNAME 正在端口 8100 上等待调试器...
8100?现在那是什么?这应该由 ADB/QT 处理还是什么
我可以看到开发服务器上的所有 logcat 事件,而移动设备上的应用程序“一直在等待”..browser 整个 logcat 日志。关于调试的唯一明智消息是应用程序一直在等待。
通过 USB 对同一应用程序进行本地调试工作正常。
远程服务器能够编译 deplay 并在手机上启动应用程序,但是由于所描述的行为,调试是徒劳的。
我注意到在调试尝试期间,本地笔记本电脑上的 adb 不断打开新端口并监听这些端口。这到底是怎么回事?
相反,当通过 USB 进行调试时,5037 是唯一使用的端口,一切正常,adb 不会进入新端口创建狂潮。
解决方案
推荐阅读
- http - Camel如何绕过请求头进入http dsl组件请求?
- c++ - C++:为什么通过 struct-template 定义的派生结构中的成员不隐藏基本结构中的相应成员变量?
- java - 我收到框架布局错误我无法添加图像
- javascript - 如何减慢发出请求的速度?
- excel - 基于VBA中字符串列中的字符应用过滤器
- r - 如何使用 ggplot2 绘制累积频率线图?
- tkinter - 如何从 Tkinter 程序中打开默认的 Ubuntu 文本编辑器?
- xslt - XSLT 基于值对出现进行分组
- javascript - 如何在 Tabulator.js 中为新列添加数据?
- php - PHP嵌套数组创建