QT部署后运行报错QQmlApplicationEngine组件加载失败问题求助
问题定位
报错中的乱码是Windows控制台编码不兼容导致的,实际错误为QtQuick.Layouts module is not installed,核心原因是QML引擎无法加载到QtQuick.Layouts对应的组件资源。
排查解决步骤
- 检查
windeployqt执行参数
你使用windeployqt时如果没有指定Qml扫描路径,工具不会自动拷贝Qml模块依赖。执行时需要添加--qmldir <你的项目源码根目录>参数,命令示例:
该参数会自动扫描项目内引用的所有Qml模块,将对应的组件、动态库完整拷贝到输出目录。windeployqt.exe --qmldir C:\path\to\your\project\source 编译生成的.exe文件路径 - 手动校验QtQuick.Layouts依赖完整性
如果加参数执行后仍然报错,检查输出目录下是否存在QtQuick/Layouts文件夹,该文件夹内必须包含qtquicklayoutsplugin.dll、plugins.qmltypes、qmldir三个文件。如果缺失可以从Qt安装路径下对应架构的目录直接拷贝,参考路径:Qt6.1.3\6.1.3\mingw81_64\qml\QtQuick\Layouts,将整个Layouts文件夹复制到输出目录的QtQuick文件夹下即可。 - 修正Qt Creator运行环境配置
你在Qt Creator内运行也报错,说明项目的QML导入路径配置有误。可以在项目构建配置中添加QML_IMPORT_PATH变量,值设置为你Qt安装目录下的qml文件夹路径;如果是CMake项目,也可以在CMakeLists.txt中添加如下配置:set(QML_IMPORT_PATH ${CMAKE_SOURCE_DIR}/qml CACHE PATH "QML import path" FORCE) - 确认依赖架构匹配
检查你使用的windeployqt是否是MinGW 81_64对应版本,不要误用32位或者MSVC版本的windeployqt,架构不匹配也会导致QML模块加载失败。
内容的提问来源于stack exchange,提问作者lzzy
相关产品推荐
相关产品推荐

