DevEco Studio中使用Qt,编写HarmonyOS程序

1.安装DevEco

不要用最新版的DevEco,而是要用教程【基于DevEco的Qt工程配置】中提到的4.1.0.400版本。不然各种问题没法找答案
在这里插入图片描述

找了一下资料,官方(也可能是社区)人员已经做过了Qt的移植。
下载了【Qt For OpenHarmony Alpha v6版本】后,按照他们的操作手册【基于DevEco的Qt工程配置】来操作就可以了
在这里插入图片描述

2.注意事项

但是,可能会遇到一些问题。这里记录一下。

2.1.修改module.json5(超级重要)

MyApplication/entry/src/main/module.json5
里面的srcEntry由原来的EntryAbility.ts改成 EntryAbility.ets,不然启动的还是旧的入口,而不是咱们从qt拷贝过来的入口。

"srcEntry": "./ets/entryability/EntryAbility.ets",

在这里插入图片描述

2.2.adapter_ts(目前官方wiki中的例程已经没有用到这个模块了,可以不管这个了)

adapter_ts的下载信息在官方wiki的附录章节中:
在这里插入图片描述

假如按照文档中介绍的,导入adapter_ts模块后,会报这个错误:

Cannot find module 'adapter_ts' or its corresponding type declarations.

在这里插入图片描述有人也遇到这个问题【基于DevEco的Qt工程编程提示Cannot find module ‘adapter_ts’ or its corresponding type declarations. 】。但是我按照官方的人的回复

开发者你好,可以参考wiki文档《测试工程使用说明》中的编辑配置章节设置Auto Dependencies

并不能解决这个问题。
最后我是参考这里【OpenHarmony—开发及引用动态共享包】,解决掉这个问题的。
在对adapter_ts模型进行引入、编译之后,会在其build目录下得到一个adapter_ts.har,不用动他,留它在这里。
在这里插入图片描述

然后在主模块的oh-package.json5文件中的dependencies属性中,引入adapter_ts。

  "dependencies": {
    "libqtmodule.so": "file:./src/main/cpp/types/libqtmodule",
    "adapter_ts": "file:../adapter_ts"
  },

在这里插入图片描述添加这句后,IDE会报一个错误,然后自动给出方案,说什么ohpm install之类的,点击应用即可。

2.3.无法使用opengl或者OpenGLFunctions_2_1

原因是此时HarmonyOS使用的是opengl es2及es3的接口【对Qt OpenGL的适配 】
在这里插入图片描述而当定义了openglES2之后,下面这一句就会为fasle,从而屏蔽整个OpenGLFunctions_2_1类

#if !defined(QT_NO_OPENGL) && !defined(QT_OPENGL_ES_2)

在这里插入图片描述因此,以后统一用OpenGLFunctions就好了。因为OpenGLFunctions里面的函数是GLES2 + OpenGL1通用子集

// GLES2 + OpenGL1 common subset

在这里插入图片描述

2.4.手机插到电脑后,DevEco无法识别

我的手机是HarmonyOS 3.0的。插到电脑后,DevEco的Device列表中没有识别到我的手机。
哪怕按照这里的设置了也还是不行。【[经验分享] Deveco3.1连接华为Mate30Pro 5G显示No Device解决法】
在这里插入图片描述暂时不知道怎么解决。

2.5.Qt读取rawfile路径下的文件

【Qt 应用中获得rawfile 全路径的方法 】

好的,OpenHarmony Qt也提供了QFile读rawfile文件的功能。比如QFile file(“rawfile:/xxx.txt”)

2.6. code:9568404 error: delivery sign profile failed

【创建一个5.0版本的OH项目,运行一直报错Install Failed: error: failed to install bundle. code:9568404 error: delivery sign profile failed 】

2.7.使用Qt3d时需要注意的事情

a.要加入Concurrent模块,否则会报错
b.要将plugins/renderers/libplugins_renderers_openglrenderer.so拷贝到lib中,否则会报找不到opengl渲染插件
c.将rawfile下面的Qt文件夹拷贝一份到arm64-v8a处。因为

注意:因为openharmony系统路径访问权限问题,在新系统中对MQL插件加载路径进行了限制,因此需要将QML相关资源再次拷贝一份到\entry\libs\arm64-v8a目录下
资料来源【拷贝qml资源文件】

在这里插入图片描述

2.8.设置APP图标及名称

在这里插入图片描述

【鸿蒙设置,修改APP图标和名称】

2.9. managed by isoftstone水印

不方便说太多,看图:
在这里插入图片描述

2.10. 使用qml

rawfile、arm64a-v8a这两个地方都要保证有这个Qt/qml的文件夹。
在这里插入图片描述
在这里插入图片描述


参考:
【Qt for OpenHarmony 开发环境搭建笔记】
【OpenHarmony—开发及引用动态共享包】
【基于DevEco的Qt工程配置】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值