Win10 DevEco Studio + Qt 开发HarmonyOS鸿蒙Next PC应用报错:qt.qpa.plugin: Could not find the Qt platform plugin "openharmony"

Win10 DevEco Studio + Qt 开发HarmonyOS鸿蒙Next PC应用报错:qt.qpa.plugin: Could not find the Qt platform plugin “openharmony” 环境:Win10 DevEco Studio + Qt + 模拟器6.0.0鸿蒙PC Qt5.15.12_OHOS18_x86-64_windows_202601191657.zip解压到:G:\Qt\qt-5.15.12-ohos-x86_64

将如下库

G:\Qt\qt-5.15.12-ohos-x86_64\lib*.so

G:\Qt\qt-5.15.12-ohos-x86_64\plugins\platforms\libplugins_platforms_qopenharmony.so

拷贝到工程G:\SourceCode\ExgManager\entry\libs\x86_64下.

运行后,应用程序闪退,报错:报错:qt.qpa.plugin: Could not find the Qt platform plugin “openharmony”。

各位大佬们,为什么明明将所需要的库都拷贝到libs\x86_64下了,还是报这个错呢?大家有碰到这样的问题吗?


更多关于Win10 DevEco Studio + Qt 开发HarmonyOS鸿蒙Next PC应用报错:qt.qpa.plugin: Could not find the Qt platform plugin "openharmony"的实战教程也可以访问 https://www.itying.com/category-93-b0.html

14 回复

开发者您好,请您参考以下方案: 1.'libplugins_platforms_qopenharmony.so’在ide上的报红是由于IDE暂时无法索引找到这个so,不影响功能,后续正在优化中。 2.如果开源Qt编译错误较多,建议您切换另一个分支,用API17编译尝试。您也可以在开源社区提ISSUE,催促官方尽快修复:Issues

更多关于Win10 DevEco Studio + Qt 开发HarmonyOS鸿蒙Next PC应用报错:qt.qpa.plugin: Could not find the Qt platform plugin "openharmony"的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


开发者您好,请您参考以下内容补充相关信息: 1、根据您的描述,您是否是没有编译出Qt产物,想跟您确定下libplugins_platforms_qopenharmony.so是从哪儿来的?同时,也麻烦您提供下完整报错日志。 2、您是否设置QT_PREFIX? 3、建议您使用商业版Qt,会更加稳定,可参考Qt5.12.12 Open Source Release for HarmonyOS。 4、模拟器和真机存在差异,建议您使用真机尝试。

1.通过https://gitcode.com/openharmony-sig/qt/releases网址下载Qt5.15.12_alpha_v8_x86-64_openharmony_ndk_5.1.0.107_community_win.zip,解压后,可以得到libplugins_platforms_qopenharmony.so,运行后报错日志见log.txt。

2.设置QT_PREFIX?是指工程下的entry/build-profile.json5中设置吗?如下: “externalNativeOptions”: { “path”: “./src/main/cpp/CMakeLists.txt”, “arguments”: “-DQT_PREFIX=G:/Qt/qt-5.15.12-ohos-x86_64”, “cppFlags”: “”, “abiFilters”: [“x86_64”] } }, 这样是否算设置了?

3.感谢您的建议,由于条件限制,暂不考虑使用商业版Qt。

4.感谢您的建议,由于money的限制,暂时没有鸿蒙PC真机环境。

开发者您好,请您参考以下方案: 尝试使用“Qt5.15.12_alpha_v8_x86-64_openharmony_ndk_5.1.0.107_community_win.zip”,将libplugins_platforms_qopenharmony.so放到entry\libs\x86_64下后,将build-profile.json5文件中的arguments配置Qt路径:

"arguments": "--DQT_PREFIX=D:\\QtInstall\\open_win"

即可在模拟器中跑起来。

请尝试将-DQT_PREFIX=G:/Qt/qt-5.15.12-ohos-x86_64改为-DQT_PREFIX=G:\Qt\qt-5.15.12-ohos-x86_64。

如果上述方案未能解决您的问题,请您再反馈,同时也麻烦提供相应的报错日志。

您好,将-DQT_PREFIX=G:/Qt/qt-5.15.12-ohos-x86_64改为-DQT_PREFIX=G:\Qt\qt-5.15.12-ohos-x86_64,运行后,闪现一下就退出了。日志详细见log.txt。

另外,我还编译开源版Qt源码,通过git输入python build-qt-ohos.py --init命令后,

?请输入工作目录:G:\Qt\Build\work

?请配置perl路径(默认则自动下载):xxx

?请配置mingw路径(默认则自动下载):xxx

?请选择OpenHarmony SDK版本:20

?请选择OpenHarmony SDK路径(默认则自动下载):G:\Huawei\OpenHarmony\Sdk\20

?请选择要编译的Qt版本:v5.15.12-lts-lgpl

?请选择要构建类型(release/Debug):release

?请选择OpenHarmony目标架构:x86-64

?请输入克隆深度(建议值1,0为完整克隆):1

显示成功。

再运行如下命令:

python build-qt-ohos.py --exe_stage all --with_pack

报错:

……

mingw32-make[5]: Leaving directory ‘G:/Qt/Build/work/qt5_build/release/qtimageformats/src/plugins/imageformats/webp’

mingw32-make[4]: Leaving directory ‘G:/Qt/Build/work/qt5_build/release/qtimageformats/src/plugins/imageformats’

mingw32-make[3]: Leaving directory ‘G:/Qt/Build/work/qt5_build/release/qtimageformats/src/plugins’

mingw32-make[2]: Leaving directory ‘G:/Qt/Build/work/qt5_build/release/qtimageformats/src’

mingw32-make[1]: Leaving directory ‘G:/Qt/Build/work/qt5_build/release/qtimageformats’

Error during build: Command ‘[‘mingw32-make’, ‘-j4’]’ returned non-zero exit status 2.

请教一下:qtimageformats 模块的图片格式支持功能如果去掉的话,会有什么影响吗?如果没有什么大的影响,如何去掉这个模块,让它运行成功呢?

有要学HarmonyOS AI的同学吗,联系我:https://www.itying.com/goods-1206.html

开发者您好,想跟您确认下,您使用的是商业版还是开源版的Qt呢?同时,您也可以参考从0到1构建HarmonyOS PC Qt项目,排查一下您的环境配置是否正确。

开源版,参考从0到1构建HarmonyOS PC Qt项目,进行到python build-qt-ohos.py --exe_stage all --with_pack报错,走不下了,再说0到1构建HarmonyOS PC Qt项目是针对真机的,我是在模拟器上运行的,情况还是有点不一样。请问如何判断自己的环境配置是否正确

开发者您好,请您参考3楼回复。

你先确定DevEco Studio默认识别位置是在哪里而不是你自己自定义安装的位置,目前看这个错误应该是默认存放位置跟你自己解压存放的位置不一致

找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:https://www.bilibili.com/video/BV1S4411E7LY/?p=17

请问一下,你说的DevEco Studio默认识别位置,是指DevEco Studio的设置窗口中构建、执行、部署中的所需插件的位置?还是受信任的位置????
这个DevEco Studio默认识别位置要和G:\Qt\qt-5.15.12-ohos-x86_64这个一样吗?但我CMakeLists.txt已经指明了G:\Qt\qt-5.15.12-ohos-x86_64这个路径了,它还不能找到??

在Win10上使用DevEco Studio结合Qt开发HarmonyOS Next PC应用时,出现"Could not find the Qt platform plugin ‘openharmony’"错误,是因为Qt平台插件未正确配置或缺失。需要确保Qt for OpenHarmony插件已正确安装并配置环境变量。检查Qt安装目录下的plugins/platforms文件夹中是否存在openharmony插件文件。同时确认DevEco Studio中Qt工具链配置指向正确的Qt版本。

这个错误表明Qt运行时没有正确加载openharmony平台插件。虽然你已经将libplugins_platforms_qopenharmony.so文件复制到了libs\x86_64目录,但Qt的插件加载机制可能没有正确识别该路径。

主要问题在于Qt插件的搜索路径。在HarmonyOS Next应用环境中,Qt默认的插件路径可能不包含你放置的libs\x86_64目录。你需要确保Qt能够找到这个插件文件。

解决方法:

  1. 设置正确的插件路径:在应用程序启动时,通过设置环境变量QT_QPA_PLATFORM_PLUGIN_PATH来指定插件目录。你可以在C++代码中添加:

    qputenv("QT_QPA_PLATFORM_PLUGIN_PATH", "entry/libs/x86_64");
    

    这行代码需要在QApplication初始化之前执行。

  2. 检查插件依赖:使用ldd或readelf工具检查libplugins_platforms_qopenharmony.so的依赖关系是否满足。确保所有依赖的Qt库都已正确放置在libs\x86_64目录中。

  3. 验证插件文件:确认插件文件是针对x86_64架构编译的,并且与你的Qt版本兼容。不匹配的架构或版本会导致加载失败。

  4. 检查文件权限:确保插件文件具有正确的执行权限。

  5. 查看完整日志:启用更详细的Qt日志输出可以帮助诊断问题。在启动前设置环境变量QT_DEBUG_PLUGINS=1,这将输出插件加载的详细信息。

实现代码示例:

#include <QApplication>
#include <QDebug>

int main(int argc, char *argv[])
{
    // 设置插件路径
    qputenv("QT_QPA_PLATFORM_PLUGIN_PATH", "entry/libs/x86_64");
    
    // 启用调试输出
    qputenv("QT_DEBUG_PLUGINS", "1");
    
    QApplication app(argc, argv);
    // ... 你的应用代码
    return app.exec();
}

如果问题仍然存在,检查DevEco Studio的构建配置,确保native库的加载路径设置正确。同时确认你的工程配置中已正确声明了对这些so文件的依赖。

回到顶部