首页 > 解决方案 > QT android + 远程调试

问题描述

我一直在尝试为 Qt 设置 ADB 远程调试。设想:

解决方案:我通过远程端口转发 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 不会进入新端口创建狂潮。

标签: androidqtadb

解决方案


推荐阅读