Qt6.10.8在安卓手机上Run程序时出现报错:The deployment device does not support the architectures used by the kit. The kit supports "arm64-v8a", but the device uses ""

AI说是Qt6.x.x的原生bug,搜索搜到的也有说是因为手机开发者模式不对,要把充电模式改为文件传输,参见官方论坛链接:[https://forum.qt.io/topic/150157/build-error-kit-supports-but-the-device-uses-arm64-v8a],试过这两个方法仍然会有相同报错。后经过DeepSeek提醒,可以先采用adb直接安装apk避开,尝试直接安装 APK 作为临时验证
这是一个有效的“绕过”方法,可以帮你确认编译本身是否成功,并暂时解决部署问题。

操作步骤:

在 Qt Creator 中,先正常编译你的项目(不是“运行”,只是编译),生成 APK 文件。编译成功后,在 "Compile Output" 面板里通常能找到 APK 的生成路径(例如 android-build/build/outputs/apk/debug/android-build-debug.apk)。
打开终端,使用 adb install 命令手动安装这个 APK。如果之前装过,需要先卸载或使用 -r 选项覆盖安装:
adb install -r /path/to/your/android-build-debug.apk
当我采用这个方法后,再次回到Creator里面,点击Run时,就可以将程序直接部署安装在手机上了。

可能的解释如下:
你的分析非常准确,而且找到了一个很实用的临时解决方案。你遇到的这个现象,结合你提供的论坛链接内容,可以从以下几个层面来分析原因:

🧩 核心原因:Qt Creator 与 ADB 之间的状态同步失效

这个错误的直接表现是 Qt Creator 无法从设备读取 ABI 信息(显示为 ""),但通过 adb 命令行手动安装 APK 却能成功,这说明:

  1. 底层的 ADB 连接是正常的:设备能被系统识别,且能通过命令行安装应用。
  2. Qt Creator 的内部状态或缓存出了问题:它没有正确更新或获取到设备的架构信息,导致在部署环节“卡住”。

🔍 为什么手动安装 APK 能“修复”问题?

你通过命令行成功安装 APK 的操作,无意中触发了几个可能修复 Qt Creator 状态的环节:

可能的触发点 作用机制 依据/解释
刷新了 ADB 服务状态 adb install 命令会强制让 ADB 服务与设备进行一次完整的握手和信息交换,这可能会刷新设备的 ABI 信息,并修正之前可能存在的通信“卡顿”。 论坛中多位用户提到该错误与 ADB 设备识别有关,如“This means your device is likely not recognized by adb”。
确认了设备授权 在某些情况下,设备虽然显示已连接,但调试授权可能未完全确认。adb install 的成功执行,强制并确认了设备的调试授权处于“已信任”和“文件传输”模式下的完整工作状态。 论坛中提到的“充电模式”问题,以及用户之前尝试切换模式的经验,都表明授权和模式对通信至关重要。
间接清除了特定缓存 你提到之前尝试过清除 ~/.cache/QtProject/ 但无效。而手动安装 APK 并随后在 Qt Creator 中点击“运行”,可能促使 Qt Creator 重新读取了被 adb install 刷新后的设备信息,并更新了其内部的设备列表缓存,从而绕过了之前的错误状态。 论坛中有人通过“rm -R ~/.cache/QtProject”解决了问题,说明缓存是关键。你的操作可能起到了类似但更间接的“刷新”效果。
完成了构建的“最后一环” 编译过程生成了正确的 APK,但自动部署环节失败。手动安装证明 APK 本身是有效的,这给了 Qt Creator 一个信号:项目已成功构建,唯一的障碍在于部署。当你在 Creator 中再次点击“运行”时,它可能检测到 APK 已存在且设备可访问,便跳过了某些出错的检测步骤,直接尝试部署。 这符合你描述的“再次回到 Creator 里面,点击 Run 时,就可以将程序直接部署”的现象。

💡 总结与建议

这个现象的根本原因是 Qt Creator 在特定情况下(可能是 Qt 6.x 版本的 Bug,或环境配置的微小瑕疵)无法可靠地获取或缓存设备 ABI 信息

你发现的“手动安装 APK 后恢复正常”是一个非常宝贵的经验,其本质是通过外部命令强制刷新了 Android 调试桥(ADB)与设备的连接状态,并间接修复了 Qt Creator 的内部感知

如果未来再次遇到类似问题,你可以优先尝试这个“组合拳”:

  1. 在 Qt Creator 中正常编译项目(不运行)。
  2. 在终端中执行 adb install -r 安装生成的 APK。
  3. 回到 Qt Creator,点击“运行”。

这比反复重启或清理缓存可能更直接有效。

posted @ 2026-03-08 22:07  Xuuio  阅读(3)  评论(0)    收藏  举报