当前位置: 首页 > news >正文

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

文章目录

  • 问题 & 背景
    • 背景
    • 问题
  • 解决方案
  • One More Thing
  • 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的版本。防止在其他电脑上无法正常运行。

http://www.lryc.cn/news/296389.html

相关文章:

  • 算法学习打卡day47|单调栈系列题目
  • Maven构建OSGI+HttpServer应用
  • chrome扩展插件常用文件及作用
  • PdfFactory Pro软件下载以及序列号注册码生成器
  • jsp康养小镇管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目
  • Android 无操作之后定时退出
  • CMS 检测神器:CMSeek 保姆级教程(附链接)
  • oracle 启动命令以及ORA-01033问题处理、删除归档日志
  • 【大模型上下文长度扩展】MedGPT:解决遗忘 + 永久记忆 + 无限上下文
  • 谷歌seo搜索引擎优化有什么思路?
  • 腾讯云与IBM共同打造“高性能计算服务解决方案“
  • 【SparkML实践7】特征选择器FeatureSelector
  • LeetCode983. Minimum Cost For Tickets——动态规划
  • 百卓Smart管理平台 uploadfile.php 文件上传漏洞【CVE-2024-0939】
  • 项目中常用的一些数据库及缓存
  • MoE-LLaVA:具有高效缩放和多模态专业知识的大型视觉语言模型
  • 【Java】ArrayList和LinkedList的区别是什么
  • RabbitMQ-4.MQ的可靠性
  • 编程相关的经典的网站和书籍
  • Java代码实现基数排序算法(附带源码)
  • 基于python+django,我开发了一款药店信息管理系统
  • VSCODE使用ssh远程连接时启动服务器失败问题
  • easyexcle 导出csv
  • Ubuntu22.04 gnome-builder gnome C 应用程序习练笔记(一)
  • ESP32QRCodeReader库使用,ESP32-CAM识别二维码并向自写接口发出请求确认身份。
  • 什么是网络渗透,应当如何防护?
  • 掌握C++中的动态数据:深入解析list的力量与灵活性
  • 天地伟业接入视频汇聚/云存储平台EasyCVR详细步骤
  • Vue源码系列讲解——虚拟DOM篇【二】(Vue中的DOM-Diff)
  • 基于AST实现一键自动提取替换国际化文案