【Qt】Android上运行keeps stopping, Desktop上正常

文章目录

  • [问题 & 背景](#问题 & 背景)
  • 解决方案
  • [One More Thing](#One More Thing)
  • [Take Away](#Take Away)

问题 & 背景

背景

在文章【Qt】最详细教程,如何从零配置Qt Android安卓环境中,我们在Qt中配置了安卓开发环境,并且能够正常运行。

但笔者在成功配置并完成上述文章之前,也参考过其他博主的配置方案,有些方案中是要求手动下载NDK的。所以笔者的电脑中是有手动下载的Android-NDK-r20b的。

问题

在某次开发中,新建的项目在Windows环境中能够正常运行,但是在安卓环境下会闪退,并弹出如图弹窗:xxxx keeps stopping

尝试搜索解决方案,尝试后也无法解决问题。

解决方案

笔者在尝试解决问题的过程中发现,新项目启动失败,之前配置好的项目却能够正常运行

可以推论问题不是由于系统环境造成的,只可能是由代码CMakeLists.txt 或者项目配置造成的。

笔者在这3个方面,分别仔细对比 出问题的新项目正常运行的旧项目

笔者发现即便代码和CMakeLists.txt完全一样,新项目还是会出问题,那基本可以断定问题出在项目配置上

笔者又跑去逐项对比项目的配置项:

最终发现,新旧项目在Initial Configuration中的ANDROID_NDKCMAKE_TOOLCHAIN_FILE两个配置项上是不一样的,新项目指向了手动下载的NDK,旧项目指向了Qt自带的SDK管理器下载的NDK

新项目指向手动下载的NDK,也是因为在首选项 -> 设备 -> Android中,默认NDK被设置成了手动下载的NDK(可能是笔者之前手残设置的)。

可以把默认NDK设置为Qt自带SDK管理器下载的NDK,防止后续项目也出错

那现在已经创建的项目怎么办?也简单,修改Initial Configuration中的两个配置项,指向正确NDK就可以了:

然后中心configure项目,在运行正常了:

One More Thing

笔者在尝试浮现错误给大家看的时候,Qt Creator又出了幺蛾子:

在Desktop模式下也出问题了,报错:"由于找不到Qt6Core.dll,无法继续执行代码。重新安装程序可能解决此问题"

笔者尝试网上说的把Qt/bin加入环境变量的方式,还是不能解决。

又希望利用和旧项目对比的方式解决这个问题(没错,旧项目又是可以正常运行),但发现新旧项目的代码、CMakeLists.txt以及配置都一模一样......

问题始终存在,绝望之下笔者选择删除build文件夹 (一般与项目在同一文件夹,命名结构为build-项目名-Qt_x_x_x_Clang_86_Debug),重启Qt Creator

问题就莫名解决了......

Take Away

用Qt开发安卓,很多问题都是SDK、NDK造成的,所以一定要记录好使用的SDK、NDK的版本。防止在其他电脑上无法正常运行。

相关推荐
2401_8734794017 分钟前
如何利用IP查询定位识别电商刷单?4个关键指标+工具配置方案
开发语言·tcp/ip·php
我爱cope35 分钟前
【从0开始学设计模式-10| 装饰模式】
java·开发语言·设计模式
菜鸟学Python1 小时前
Python生态在悄悄改变:FastAPI全面反超,Django和Flask还行吗?
开发语言·python·django·flask·fastapi
浪浪小洋2 小时前
c++ qt课设定制
开发语言·c++
冬奇Lab2 小时前
Android 开发要变天了:Google 专为 Agent 重建工具链,Token 减少 70%、速度提升 3 倍
android·人工智能·ai编程
charlie1145141912 小时前
嵌入式C++工程实践第16篇:第四次重构 —— LED模板,从通用GPIO到专用抽象
c语言·开发语言·c++·驱动开发·嵌入式硬件·重构
故事和你912 小时前
洛谷-数据结构1-4-图的基本应用1
开发语言·数据结构·算法·深度优先·动态规划·图论
程序猿编码3 小时前
给你的网络流量穿件“隐形衣“:手把手教你用对称加密打造透明安全隧道
linux·开发语言·网络·安全·linux内核
aq55356003 小时前
编程语言三巨头:汇编、C++与PHP大比拼
java·开发语言
小小码农Come on4 小时前
WorkerScript处理qml多线程处理异步数据
qt