环境搭建教程:HarmonyOS PC 录屏工具(Qt5 + OHOS Native Media)

环境搭建教程:HarmonyOS PC 录屏工具(Qt5 + OHOS Native Media)

本教程指导您从零搭建 Screenrecordingtools 项目的开发环境。 该项目基于 HarmonyOS (API 23),使用 Qt5 Widgets 构建 UI,通过 OHOS Native Media API 实现屏幕录制。


声明

本文档中使用的 Qt for OpenHarmony SDK 是由 OpenHarmony SIG 社区基于 Qt 5.15 独立开发和维护的项目,非 Qt 官方版本。

文档适用范围

维度 范围
OpenHarmony API 6.1.0.23及以上
Qt 版本 Qt for OpenHarmony(基于 Qt 5.15)
DevEco Studio 6.1.1及以上
操作系统 macOS 13+ / Windows 10 64位 / Ubuntu 22.04+

前置条件

  • 具备基础的 Qt 开发知识

  • 了解 OpenHarmony / HarmonyOS 应用开发基础

  • 拥有一台 HarmonyOS NEXT 真机设备(或使用模拟器)


📋 目录

  1. 系统要求

  2. 开发工具安装

  3. Qt for OpenHarmony SDK 下载与配置

  4. HarmonyOS 工程配置详解

  5. 项目配置与适配

  6. 设备运行与调试配置

  7. 模拟器使用指南

  8. 调试技巧与常见问题


1. 系统要求

1.1 硬件要求

组件 最低要求
操作系统 macOS 13+ / Windows 10 64位 / Ubuntu 22.04+
CPU x86_64(支持虚拟化 VT-x / AMD-V)
内存 16 GB 以上
磁盘空间 32 GB 可用空间

1.2 软件要求

组件 版本要求
DevEco Studio 6.1.1及以上
HarmonyOS SDK API 6.1.0.23
OHOS NDK 配套 SDK 版本
CMake 3.16+
Qt5 5.15.x(OHOS arm64-v8a 版本)
Node.js 18+(hvigor 构建所需)
hvigor 6.1.1+(随 DevEco Studio 内置)

2. 开发工具安装

2.1 安装 DevEco Studio

  1. DevEco Studio 官网 下载安装包

    • 推荐使用最新稳定版本以获得最佳兼容性

    • 如需特定历史版本,可访问 历史版本下载页

  2. 运行安装程序,选择安装路径(建议使用不含空格和中文的路径)

    • Windows 默认路径:C:\Program Files\Huawei\DevEco Studio

    • macOS:拖拽到 Applications 文件夹

  3. 完成安装后启动,进入 Settings → SDK Manager,安装以下 SDK:

包名 版本
Ohos SDK API 6.1.0.23
Ohos SDK Toolchain 最新版
Ohos NDK 配套 API 6.1.0.23
  1. 确认 ohpm(鸿蒙包管理器)已可用:
复制代码
ohpm --version
  1. 确认 NDK 工具链路径:
复制代码
# macOS 默认路径
ls ~/Library/OpenHarmony/Sdk/ohos-sdk/ohos-ndk/native/llvm/bin/
​
# 应包含
# aarch64-unknown-linux-ohos-clang
# aarch64-unknown-linux-ohos-clang++

2.2 确认 BiSheng 编译器

HarmonyOS NEXT 使用 BiSheng(毕昇)编译器。DevEco Studio 安装 NDK 后会自动包含,无需额外安装。

build-profile.json5 中已配置:

复制代码
"nativeCompiler": "BiSheng"

2.3 创建 HarmonyOS 工程(首次使用)

详细的 DevEco Studio 工程创建和工程结构说明请参考官方 HarmonyOS 开发指南 - 工程创建

Qt for OpenHarmony 应用快速开始:

  1. 启动 DevEco Studio

  2. 选择 Create Project → Application ,选择 Native C++ 模板

  3. 填写项目名称和路径,点击 Finish 完成创建

如已有本项目,可直接 File → Open 打开项目根目录。


3. Qt for OpenHarmony SDK 下载与配置

3.1 获取 Qt for OpenHarmony SDK

  • 下载地址Qt for OpenHarmony SDK

  • 版本说明:基于 Qt 5.15 开发,由 OpenHarmony SIG 社区维护

  • 推荐版本:使用与 OpenHarmony API 版本匹配的最新 SDK

3.2 SDK 安装配置

  1. 下载 Qt for OpenHarmony SDK 包

  2. 解压到指定目录(建议不含空格和中文路径)

示例解压后路径:/Users/nutpi/Desktop/qt/qt_ohos(与项目配置一致)

3.3 验证安装

打开终端,进入安装路径的 bin 目录,执行:

Windows(cmd 或 PowerShell):

复制代码
.\qmake.exe -query

macOS / Linux:

复制代码
./qmake -query

macOS 正确输出示例:

复制代码
QT_SYSROOT:
QT_INSTALL_PREFIX:/Users/nutpi/Desktop/qt/qt_ohos
QT_INSTALL_ARCHDATA:/Users/nutpi/Desktop/qt/qt_ohos
QT_INSTALL_DATA:/Users/nutpi/Desktop/qt/qt_ohos
QT_INSTALL_DOCS:/Users/nutpi/Desktop/qt/qt_ohos/doc
QT_INSTALL_HEADERS:/Users/nutpi/Desktop/qt/qt_ohos/include
QT_INSTALL_LIBS:/Users/nutpi/Desktop/qt/qt_ohos/lib
QT_INSTALL_LIBEXECS:/Users/nutpi/Desktop/qt/qt_ohos/libexec
QT_INSTALL_BINS:/Users/nutpi/Desktop/qt/qt_ohos/bin
QT_INSTALL_TESTS:/Users/nutpi/Desktop/qt/qt_ohos/tests
QT_INSTALL_PLUGINS:/Users/nutpi/Desktop/qt/qt_ohos/plugins
QT_INSTALL_IMPORTS:/Users/nutpi/Desktop/qt/qt_ohos/imports
QT_INSTALL_QML:/Users/nutpi/Desktop/qt/qt_ohos/qml
QT_INSTALL_TRANSLATIONS:/Users/nutpi/Desktop/qt/qt_ohos/translations
QT_INSTALL_CONFIGURATION:/Users/nutpi/Desktop/qt/qt_ohos/etc/xdg
QT_INSTALL_EXAMPLES:/Users/nutpi/Desktop/qt/qt_ohos/examples
QT_INSTALL_DEMOS:/Users/nutpi/Desktop/qt/qt_ohos/examples
QT_HOST_PREFIX:/Users/nutpi/Desktop/qt/qt_ohos
QT_HOST_DATA:/Users/nutpi/Desktop/qt/qt_ohos
QT_HOST_BINS:/Users/nutpi/Desktop/qt/qt_ohos/bin
QT_HOST_LIBS:/Users/nutpi/Desktop/qt/qt_ohos/lib
QMAKE_SPEC:macx-clang
QMAKE_XSPEC:oh-clang
QMAKE_VERSION:3.1

关键验证 :打印 QMAKE_XSPEC:oh-clang 即为 Qt for OpenHarmony 版本,Qt for OpenHarmony SDK 安装完成。

3.4 另选:从源码交叉编译 Qt5

如果 SDK 不满足需求,也可从源码自行交叉编译:

复制代码
git clone --branch v5.15.x https://github.com/qt/qt5.git qt5_src
cd qt5_src
perl init-repository --module-subset=qtbase,qtwidgets,qttools
​
mkdir build_ohos && cd build_ohos
../configure \
  -prefix /path/to/install/qt_ohos \
  -opensource -confirm-license \
  -nomake examples -nomake tests \
  -skip qtwayland -skip qtwebengine \
  -no-opengl -no-vulkan \
  -qt-libpng -qt-libjpeg -qt-freetype \
  -qt-pcre -qt-zlib \
  -feature-widgets -feature-dialogs -feature-filedialog \
  -xplatform oh-clang
​
make -j$(nproc)
make install

3.5 Qt SDK 安装完成确认

验证 Qt 库文件和 cmake 配置存在:

复制代码
ls /Users/nutpi/Desktop/qt/qt_ohos/lib/cmake/Qt5/Qt5Config.cmake
ls /Users/nutpi/Desktop/qt/qt_ohos/plugins/platforms/libqopenharmony.so

4. HarmonyOS 工程配置详解

4.1 Qt 在鸿蒙平台的集成机制

Qt for OpenHarmony 通过适配 OpenHarmony 的 Ability 机制,在 EntryAbility 启动后触发 Qt 框架的初始化流程。此时 Qt 框架会加载 QPA 插件,该插件负责与系统交互,创建主窗口并启动用户 Qt 应用程序。

整体架构:

复制代码
┌──────────────────────────────────────────────────┐
│                  HarmonyOS App                     │
│  ┌────────────────────────────────────────────┐   │
│  │         EntryAbility (ArkTS)                │   │
│  │  - launchApplication: "entry"               │   │
│  └──────────────────────┬─────────────────────┘   │
│                         │ NAPI                     │
│  ┌──────────────────────▼─────────────────────┐   │
│  │          XComponent (NODE type)              │   │
│  │  libraryname: 'plugins_platforms_qopenharmony'│  │
│  │  ┌──────────────────────────────────────┐   │   │
│  │  │      Qt5 Widgets Application          │   │   │
│  │  │  QApplication → MainWindow            │   │   │
│  │  │  ScreenRecorder (OHOS Native Media)   │   │   │
│  │  └──────────────────────────────────────┘   │   │
│  └────────────────────────────────────────────┘   │
└──────────────────────────────────────────────────┘

4.2 ArkTS 侧配置 --- EntryAbility

应用入口 entry/src/main/ets/entryability/EntryAbility.ets 负责 Qt 应用的启动。

关键字段 launchApplication 必须与 CMakeLists.txt 中定义的库名称一致:

复制代码
// EntryAbility.ets
onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
    // launchApplication 的值对应 CMakeLists.txt 中的 add_library 名称
    // 例如: add_library(entry SHARED ...) → launchApplication = "entry"
    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');
}

Index.ets 中通过 XComponent 嵌入 Qt 界面:

复制代码
// pages/Index.ets
XComponent({
    id: this.windowId,
    type: XComponentType.NODE,
    libraryname: 'plugins_platforms_qopenharmony'
}).width('100%').height('100%')

4.3 C++ 侧配置 --- CMakeLists.txt

项目 CMakeLists.txt 配置参考(entry/src/main/cpp/CMakeLists.txt):

复制代码
cmake_minimum_required(VERSION 3.16)
project(entry VERSION 0.1 LANGUAGES CXX)
​
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
​
# Qt5 查找路径由 CMAKE_FIND_ROOT_PATH 指定(见 build-profile.json5)
find_package(QT NAMES Qt5 REQUIRED COMPONENTS Widgets)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets)
​
# 源文件
set(PROJECT_SOURCES
    main.cpp
    screenrecorder.h
    screenrecorder.cpp
)
​
# OHOS 原生多媒体库
find_library(NATIVE_MEDIA_CORE native_media_core)
find_library(NATIVE_MEDIA_VENC native_media_venc)
find_library(NATIVE_MEDIA_AVMUXER native_media_avmuxer)
find_library(NATIVE_WINDOW native_window)
​
if(OHOS)
    add_library(entry SHARED ${PROJECT_SOURCES})
    # 链接 QPA 插件
    target_link_libraries(entry PRIVATE
        Qt${QT_VERSION_MAJOR}::QOpenHarmonyPlatformIntegrationPlugin)
    # 链接 OHOS 原生库
    target_link_libraries(entry PRIVATE
        ${NATIVE_MEDIA_CORE}
        ${NATIVE_MEDIA_VENC}
        ${NATIVE_MEDIA_AVMUXER}
        ${NATIVE_WINDOW})
elseif(ANDROID)
    add_library(entry SHARED ${PROJECT_SOURCES})
else()
    add_executable(entry ${PROJECT_SOURCES})
endif()
​
target_link_libraries(entry PRIVATE Qt${QT_VERSION_MAJOR}::Widgets)

4.4 Qt 库及插件部署

Qt SDK 中的库和插件需要部署到工程对应目录,打包进 HAP 安装包。

库文件部署结构
复制代码
entry/src/main/libs/arm64-v8a/
├── libplugins_platforms_qopenharmony.so   ← QPA 插件
├── libQt5Core.so                           ← Qt 核心库
├── libQt5Gui.so                            ← GUI 库
├── libQt5Widgets.so                        ← Widgets 库
├── libQt5Network.so                        ← 网络库(按需)
├── ...
拷贝方式

将 Qt SDK 对应目录下的 .so 文件拷贝到 entry/src/main/libs/arm64-v8a/

复制代码
# 示例:从 Qt SDK 拷贝 QPA 插件
cp /path/to/qt_ohos/plugins/platforms/libplugins_platforms_qopenharmony.so \
   entry/src/main/libs/arm64-v8a/
​
# 示例:拷贝 Qt 核心库
cp /path/to/qt_ohos/lib/libQt5Core.so \
   entry/src/main/libs/arm64-v8a/
cp /path/to/qt_ohos/lib/libQt5Gui.so \
   entry/src/main/libs/arm64-v8a/
cp /path/to/qt_ohos/lib/libQt5Widgets.so \
   entry/src/main/libs/arm64-v8a/

⚠️ 注意 :Qt 核心库(Qt5Core、Qt5Gui)是 QPA 插件的依赖,必须 部署。本项目已在 entry/libs/arm64-v8a/ 预置了 cmake 索引文件,实际 .so 需从您的 Qt SDK 拷贝。

Qt 插件部署(按需)
复制代码
entry/src/main/libs/arm64-v8a/
├── libqjpeg.so           ← JPEG 图像格式支持
├── libqgif.so            ← GIF 格式支持
├── libqico.so            ← ICO 格式支持
└── ...
QML 资源文件(仅 Qt Quick 应用)

如果使用 QML,需要:

  1. 将 QML 组件拷贝到 src/main/resources/resfile/qml/(手动创建)

  2. 将 QML 组件拷贝到 libs/arm64-v8a/qml/(手动创建)

4.5 QRC 资源文件使用

QRC(Qt Resource Collection)文件用于将资源文件编译到应用程序中。

CMakeLists.txt 中将 QRC 文件添加到源文件列表:

复制代码
add_library(entry SHARED
    main.cpp
    resources.qrc
)

QRC 文件格式:

复制代码
<RCC>
    <qresource prefix="/">
        <file>main.qml</file>
        <file>images/logo.png</file>
    </qresource>
</RCC>

代码中通过 qrc:/ 前缀访问:

复制代码
// C++
QIcon icon("qrc:/images/logo.png");
​
// QML
// engine.load(QUrl(QStringLiteral("qrc:/main.qml")));

4.6 fontconfig 依赖说明

如果 Qt SDK 启用了 fontconfig 支持,需要将 fontconfig 相关库拷贝到 entry/src/main/libs/arm64-v8a/ 目录。

:Qt for OpenHarmony SDK 提供的预编译二进制包暂时未启用 fontconfig 支持,一般情况下无需额外配置字体。


5. 项目配置与适配

5.1 克隆项目

复制代码
git clone git@gitcode.com:jianguoxu/qtdemo.git
cd qtdemo

5.2 配置 Qt5 搜索路径

项目通过 entry/build-profile.json5 中的 externalNativeOptions 指定 Qt5 路径:

复制代码
"externalNativeOptions": {
    "path": "./src/main/cpp/CMakeLists.txt",
    "arguments": "-DCMAKE_FIND_ROOT_PATH=/Users/nutpi/Desktop/qt/qt_ohos",
    "cppFlags": "",
    "abiFilters": ["arm64-v8a"]
}

⚠️ 重要 :请将 CMAKE_FIND_ROOT_PATH 修改为您自己安装的 Qt for OpenHarmony SDK 路径。

5.3 确认 NDK 环境变量

DevEco Studio 构建时自动注入 NDK 路径。如需命令行构建,设置:

复制代码
export OHOS_SDK_HOME=~/Library/OpenHarmony/Sdk  # macOS
# export OHOS_SDK_HOME=C:\Users\<用户名>\AppData\Local\OpenHarmony\Sdk  # Windows
export PATH=$OHOS_SDK_HOME/ohos-sdk/ohos-ndk/native/llvm/bin:$PATH

5.4 权限配置

项目已在 module.json5 中声明了录屏所需权限:

权限 用途
ohos.permission.MICROPHONE 录制麦克风音频
ohos.permission.WRITE_MEDIA 写入录屏文件
ohos.permission.READ_MEDIA 访问媒体文件

运行时首次启动会在系统弹窗中动态授予权限。

5.5 使用预编译 Qt 库

项目 entry/libs/arm64-v8a/ 目录包含 CMake 索引文件(.cmake),用于在构建时定位 Qt5 的 CMake 配置。构建时 CMake 会通过这些索引文件找到 Qt 头文件和库。

实际运行时需要将 Qt 的 .so 动态库部署到设备上。确保您的 Qt SDK 已正确安装,并将必要的 .so 文件放入 entry/src/main/libs/arm64-v8a/ 目录(参见 4.4 库文件部署结构)。


6. 设备运行与调试配置

6.1 连接设备

  1. 通过 USB 连接 HarmonyOS NEXT 真机(或启动模拟器)

  2. 在终端验证设备连接:

复制代码
hdc list targets
# 应显示设备序列号

6.2 应用签名

签名是运行鸿蒙应用的必需步骤。

自动签名(推荐开发阶段使用):

  1. 点击 IDE 右上角的 Project Structure... 按钮

  2. 进入 Project → Signing Configs 签名界面

  3. 勾选 Automatically generate signature

  4. 登录华为开发者账户(首次需注册)

  5. 对于 OpenHarmony 设备:不需要勾选 "Support HarmonyOS"

  6. 对于 HarmonyOS 设备:可勾选 "Support HarmonyOS" 以使用 ACK 权限

  7. 点击 Ok 完成签名

"Support HarmonyOS" 的作用是在开发调试阶段使用 ACK 权限,详见 官方签名文档

项目已有的签名配置(build-profile.json5):

复制代码
"signingConfigs": [
    {
        "name": "default",
        "type": "HarmonyOS",
        "material": {
            "certpath": "...",
            "keyAlias": "debugKey",
            "keyPassword": "...",
            "profile": "...",
            "signAlg": "SHA256withECDSA",
            "storeFile": "...",
            "storePassword": "..."
        }
    }
]

第一次在其他机器上运行时,DevEco Studio 会自动重新生成签名。

6.3 运行程序

  1. 在设备列表选择已连接的鸿蒙设备

  2. 选择要运行的模块(默认为 entry

  3. 点击 IDE 工具栏右上角的 Run ▶ 按钮

  4. IDE 会自动编译、部署应用到设备,并自动启动

6.4 运行效果

启动后应用界面将嵌入在 XComponent 中:

复制代码
┌────────────────────────────────┐
│      Screen Recorder           │     ← Qt Widgets 窗口标题
│                                │
│           Ready                │     ← 状态指示
│                                │
│         00:00:00               │     ← 录制时长
│                                │
│  ┌──────────────────┐ [Browse]│     ← 输出路径 + 浏览按钮
│  │ /data/.../Videos/...mp4   │
│  └──────────────────┘         │
│                                │
│      [Microphone: ON]          │     ← 麦克风开关
│                                │
│     [Start Recording]          │     ← 开始/停止按钮
│     [Stop Recording]           │
└────────────────────────────────┘

7. 模拟器使用指南

7.1 硬件与软件要求

项目 要求
操作系统 Windows 10 64位 / macOS 12.5+
CPU 支持虚拟化(Intel VT-x / AMD-V)
内存 16 GB 以上
磁盘空间 32 GB 可用空间
软件 DevEco Studio(推荐最新版本)
BIOS 需启用虚拟化技术(VT)

7.2 创建模拟器

  1. 打开 DevEco Studio,进入 Tools → Device Manager

  2. 点击 New Emulator(首次使用需登录华为开发者联盟账号)

  3. 下载所需的设备类型及 API 版本的模拟器镜像(如 API 6.1.0.23)

  4. 下载完成后点击 Next 进入模拟器创建界面

  5. 配置参数:

    • Name:自定义名称

    • Memory:推荐 4 GB 以上

    • Storage:推荐 4 GB 以上

  6. 点击 Finish 完成创建

  7. 点击模拟器的 Actions → 启动图标 启动

详细流程参考官方文档:创建模拟器

7.3 模拟器工程配置

Windows (x86_64) 上使用模拟器时,需要:

  1. 修改 build-profile.json5externalNativeOptions/abiFiltersx86_64

  2. libs/ 目录下创建 x86_64 目录

  3. 使用 x86_64 版本的 Qt for OpenHarmony SDK

复制代码
"abiFilters": ["x86_64"]

macOS 使用 arm64 模拟器时保持 arm64-v8a 即可。

7.4 模拟器上运行应用

完成项目配置及签名后,在设备列表选择已启动的模拟器,点击运行按钮即可在模拟器上部署及运行程序。

7.5 模拟器常见问题

问题 解决方法
模拟器启动不起来 在模拟器列表 Actions 菜单中选择 Wipe User Data,然后重新启动
模拟器运行崩溃 根据错误码在官方文档中查询:模拟器错误码

8. 调试技巧与常见问题

8.1 调试配置

配置 Debug 模式
  1. 点击模块下拉框 → Edit Configurations...

  2. 进入 entryDebugger 标签页

  3. 配置 Debug type

调试模式 说明
Dual(推荐) 同时调试 ArkTS 和 C++ 代码
Native 仅调试 C++ 原生代码
ArkTS 仅调试 ArkTS 代码
确保可调试
  1. build-profile.json5 中设置 debuggable: true

  2. app.json5 中设置 debug: true

  3. 在 CMakeLists.txt 中添加调试符号:

复制代码
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g -O0")
禁用符号剥离(release 构建)
复制代码
"nativeLib": {
    "debugSymbol": {
        "strip": false
    }
}

8.2 HiLog 日志查看

Qt SDK 内置了 "QtForOpenHarmony" 关键字用于过滤日志:

复制代码
# 过滤 Qt for OpenHarmony 日志
hdc shell hilog | grep "QtForOpenHarmony"
​
# 过滤录屏工具日志
hdc shell hilog | grep -i "ScreenRecorder"
​
# 查看原生层日志
hdc shell hilog -D 0xd001800

8.3 FaultLog 崩溃定位

当应用崩溃时,使用 FaultLog 查看崩溃信息和堆栈日志:

复制代码
# 获取最新崩溃日志
hdc shell faultlog query -t recent
hdc shell faultlog query -p <pid>  # 按进程 ID 查询

详细可参考:应用崩溃定位

8.4 变量监视与调试窗口

  1. 启动调试后,DevEco Studio 自动打开调试窗口

  2. 可在 Variables 面板查看和监视变量

  3. 调试窗口左上方提供:恢复程序、单步跳过、单步进入、单步跳出等功能

8.5 无法进入断点

检查项:

  • app.json5debug 字段是否为 true

  • build-profile.json5debuggable 是否为 true

  • CMakeLists.txt 中是否使用了 -g 编译选项

  • 确保以 Debug 模式运行(而非 Run)

8.6 lldb 调试符号可读性较差

Run/Debug Configurations 中配置 lldb Python 插件扩展以提升可读性。

8.7 程序启动报错

点击 Run 界面中的错误信息可直接跳转到官方文档,查看解决方法。

8.8 常见问题

Q1: 构建时找不到 Qt5
复制代码
CMake Error: Could not find a package configuration file provided by "Qt5"

解决 :检查 CMAKE_FIND_ROOT_PATH 是否指向正确的 Qt5 安装目录。

复制代码
ls /path/to/qt_ohos/lib/cmake/Qt5/Qt5Config.cmake
Q2: QPA 插件加载失败
复制代码
qt.qpa.plugin: Could not load the Qt platform plugin "qopenharmony"

解决

  • 确认 libplugins_platforms_qopenharmony.so 已拷贝到 entry/src/main/libs/arm64-v8a/

  • 确认 XComponent 的 libraryname 与 .so 文件名匹配

  • 确认 Qt 核心库(Qt5Core、Qt5Gui)也已部署

Q3: 录屏文件为空或损坏

排查方向

  • native_media_venc 未找到 → 检查 NDK 版本是否配套

  • 帧率过低 → 检查 grab 定时器间隔(默认 30fps)

  • 输出路径不可写 → 确保已授予 WRITE_MEDIA 权限

  • 编码器初始化失败 → 查看 hilog 中 ScreenRecorder 相关错误

Q4: 签名错误
复制代码
Failure[MSG_ERR_APPINSTALL_INSTALL_FAILED_INVALID_SIGNATURE]

解决

  • 在 DevEco Studio 中重新生成签名:File → Project Structure → Signing → Automatically generate signature

  • 确保已登录华为开发者账户

  • OpenHarmony 设备不要勾选 "Support HarmonyOS"

Q5: BiSheng 编译器未找到
复制代码
clang: error: no such file or directory: '.../aarch64-unknown-linux-ohos-clang++'

解决 :重新安装 DevEco Studio 的 Ohos NDK 组件,确保包含 BiSheng 工具链。

Q6: 模拟器一直启动不起来

在模拟器列表的 Actions 列菜单中选择 Wipe User Data,然后重新启动。

Q7: 应用崩溃无日志

使用 FaultLog 获取崩溃堆栈:

复制代码
hdc shell faultlog query -t recent

📎 参考资源

资源 链接
Qt for OpenHarmony 用户手册 [UserManual:Qt For OpenHarmony使用示例及说明 - AtomGit | GitCode](https://gitcode.com/qtforohos/UserManual "UserManual:Qt For OpenHarmony使用示例及说明 - AtomGit
Qt for OpenHarmony SDK 下载 [AtomGit | GitCode - 全球开发者的开源社区,开源代码托管平台](https://atomgit.com/openharmony-sig/qt/releases "AtomGit
DevEco Studio 下载 DevEco Studio-鸿蒙应用集成开发环境(IDE)-华为开发者联盟
HarmonyOS 工程创建指南 文档中心
应用签名配置 文档中心
应用调试文档 文档中心
模拟器创建指南 文档中心
模拟器错误码 文档中心
应用崩溃定位 文档中心
OHOS Native Media API https://developer.harmonyos.com/cn/docs/documentation/doc-guides/native-avcodec.md

适用 SDK :HarmonyOS API 6.1.0.23 Qt 版本 :Qt 5.15.x for OpenHarmony 参考来源Qt for OpenHarmony 用户手册 --- 设备运行及调试配置、工程配置详解、开发环境安装与配置、创建第一个 Qt Widget 应用、Qt 在鸿蒙平台的集成机制

相关推荐
G_dou_1 小时前
Flutter三方库适配OpenHarmony【password_generator】密码生成器项目完整实战
flutter·harmonyos
-凌凌漆-1 小时前
【Qt】C++中protected与private的区别
开发语言·c++·qt
不爱吃糖的程序媛2 小时前
鸿蒙 ArkTS 编译警告消除实战:从 5 个 WARN 到 0 警告
华为·harmonyos
-凌凌漆-2 小时前
Qt QML应用层框架
开发语言·qt
weixin_604236672 小时前
华为三层交换机 企业标准完整配置
网络·华为·华为交换机命令·华为三层交换机
island13142 小时前
[鸿蒙PC命令行移植适配]移植rust三方库envfetch到鸿蒙PC的完整实践
华为·rust·harmonyos
小雨下雨的雨2 小时前
鸿蒙PC用Electron框架 实现 房产交易系统核心算法深度解析
前端·javascript·算法·华为·electron·鸿蒙系统
前端不太难2 小时前
鸿蒙 App 智能助手:实现原理 + 开发实践
华为·状态模式·harmonyos
糖炒狗子2 小时前
HarmonyOS NEXT 华为账号登录全流程(客户端 + Go 后端)
华为·golang·harmonyos