如何配置HarmonyOS 5与React Native的开发环境?

配置 HarmonyOS 5 与 React Native 的开发环境需遵循以下步骤

一、基础工具安装

  1. DevEco Studio 5.0+

    • 从 HarmonyOS 开发者官网 下载安装
    • 勾选组件:
      • HarmonyOS SDK (API 12+)
      • ArkTS 编译器
      • JS/ArkTS 调试工具
      • HarmonyOS 本地模拟器 
  2. Node.js 18.17+

    # 安装后验证版本
    node -v
    npm -v
    
  3. 需支持 ES2020+ 语法特性 

npx react-native@0.72.5 init MyApp --template react-native-template-harmonyos

必须 ≥0.72.5 以避免线程冲突

二、环境变量配置

macOS/Linux
# 编辑 ~/.bashrc 或 ~/.zshrc
export PATH="/Applications/DevEco-Studio.app/Contents/sdk/default/openharmony/toolchains:$PATH"
export HDC_SERVER_PORT=7035  # 设置hdc调试端口
export CAPI_INCLUDE_PATH="$HARMONY_HOME/napi_sdk"

执行 source ~/.bashrc 生效 

Windows
  1. 系统环境变量 Path 添加:
    {DevEco安装路径}\sdk\default\openharmony\toolchains
  2. 新建系统变量:
    • HDC_SERVER_PORT=7035
    • CAPI_INCLUDE_PATH={DevEco安装路径}\napi_sdk 

三、鸿蒙专属模块集成

  1. 安装鸿蒙桥接库
npm install @ohos/react-native-harmony --save

‌2. 链接原生模块

npx react-native link @ohos/react-native-harmony
``` :ml-citation{ref="2,5" data="citationList"}  

四、权限声明配置

在 entry/src/main/ets/ohos/Ability.json 添加分布式权限:

"requestPermissions": [{"name": "ohos.permission.DISTRIBUTED_DATASYNC"}
]

五、JS引擎优化

在 oh-package.json 添加内存限制:

"jsEngine": {"type": "harmony-jsengine","config": { "memoryLimitMB": 512 }
}

防止多线程死锁

六、环境验证

# 检查hdc连接
hdc list targets# 启动RN开发服务
npx react-native start# 编译并运行到设备
npx react-native run-harmonyos

成功运行后设备显示鸿蒙欢迎界面

常见问题解决

错误类型解决方案
hdc command not found检查环境变量PATH是否包含toolchains路径
JS线程死锁确保jsEngine内存限制为512MB
分布式权限缺失在ability.json声明DISTRIBUTED_DATASYNC
模板初始化失败强制指定RN版本:@0.72.5

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/diannao/86516.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

kotlin kmp 副作用函数 effect

在 Kotlin Multiplatform (KMP) Compose 中,“effect functions”(或“effect handlers”)是专门的可组合函数,用于在 UI 中管理副作用。 在 Compose 中,可组合函数应该是“纯”的和声明式的。这意味着它们应该理想地…

3.3.1_1 检错编码(奇偶校验码)

从这节课开始,我们会探讨数据链路层的差错控制功能,差错控制功能的主要目标是要发现并且解决一个帧内部的位错误,我们需要使用特殊的编码技术去发现帧内部的位错误,当我们发现位错误之后,通常来说有两种解决方案。第一…

【Pandas】pandas DataFrame isna

Pandas2.2 DataFrame Missing data handling 方法描述DataFrame.fillna([value, method, axis, …])用于填充 DataFrame 中的缺失值(NaN)DataFrame.backfill(*[, axis, inplace, …])用于**使用后向填充(即“下一个有效观测值”&#xff09…

MQTT协议:物联网时代的通信基石

MQTT协议:物联网时代的通信基石 在当今快速发展的物联网(IoT)时代,设备之间的通信变得尤为重要。MQTT(Message Queuing Telemetry Transport)协议作为一种轻量级的消息传输协议,正逐渐成为物联…

Excel 表格内批量添加前缀与后缀的实用方法

我们经常需要为 Excel 表格中的内容统一添加前缀或后缀,例如给编号加“NO.”、给姓名加“会员_”等。手动操作效率低,本文将介绍几种实用的方法,帮助你快速完成批量添加前缀和后缀的操作。 使用“&”运算符添加前缀或后缀(推…

uniapp 实现腾讯云IM群文件上传下载功能

UniApp 集成腾讯云IM实现群文件上传下载功能全攻略 一、功能背景与技术选型 在团队协作场景中,群文件共享是核心需求之一。本文将介绍如何基于腾讯云IMCOS,在uniapp中实现: 群内文件上传/下载文件元数据管理下载进度追踪跨平台文件预览 二…

GO协程(Goroutine)问题总结

在使用Go语言来编写代码时,遇到的一些问题总结一下 [参考文档]:https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现: 今天在看到这个教程的时候,在自己的电…

uniapp微信小程序视频实时流+pc端预览方案

方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度​WebSocket图片帧​定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐​RTMP推流​TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…

分布式锁实战:Redisson vs. Redis 原生指令的性能对比

分布式锁实战:Redisson vs. Redis 原生指令的性能对比 引言 在DIY主题模板系统中,用户可自定义聊天室的背景、图标、动画等元素。当多个运营人员或用户同时修改同一模板时,若没有锁机制,可能出现“甲修改了背景色,乙…

C++ 设计模式《复制粘贴的奇迹:小明的原型工厂》

👨‍🎓 模式名称:原型模式(Prototype Pattern) 📖 背景故事 创业初期,小明每天加班写配送路线、配送策略、营销套餐。可当业务做大后,他发现大家常常下单“上次那个套餐”—— “老…

【Elasticsearch】映射:fielddata 详解

映射:fielddata 详解 1.fielddata 是什么2.fielddata 的工作原理3.主要用法3.1 启用 fielddata(通常在 text 字段上)3.2 监控 fielddata 使用情况3.3 清除 fielddata 缓存 4.使用场景示例示例 1:对 text 字段进行聚合示例 2&#…

开源 vGPU 方案:HAMi,实现细粒度 GPU 切分

本文主要分享一个开源的 GPU 虚拟化方案:HAMi,包括如何安装、配置以及使用。 相比于上一篇分享的 TimeSlicing 方案,HAMi 除了 GPU 共享之外还可以实现 GPU core、memory 得限制,保证共享同一 GPU 的各个 Pod 都能拿到足够的资源。…

PlayDiffusion上线:AI语音编辑进入“无痕时代”

在语音合成与语音编辑领域,一个长期存在的挑战是如何在修改语音内容的同时,保持原始语音的自然性、连贯性和说话人特征。近日,一款名为 PlayDiffusion 的新型 AI 语音修复模型应运而生,成功实现了这一目标。 PlayDiffusion 是一个…

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)

2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…

微信小程序前端面经

一、技术栈与编码能力(10min) 1. Vue 3 & Composition API Q1:请解释一下 ref 和 reactive 的区别?你在项目中是如何使用的? 答:ref是包装一个原始值或对象,通过.value访问,r…

rknn toolkit2搭建和推理

安装Miniconda Miniconda - Anaconda Miniconda 选择一个 新的 版本 ,不用和RKNN的python版本保持一致 使用 ./xxx.sh进行安装 下面配置一下载源 # 清华大学源(最常用) conda config --add channels https://mirrors.tuna.tsinghua.edu.cn…

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成

厌倦手动写WordPress文章?AI自动生成,效率提升10倍! 支持多语言、自动配图、定时发布,让内容创作更轻松! AI内容生成 → 不想每天写文章?AI一键生成高质量内容!多语言支持 → 跨境电商必备&am…

Houdini POP入门学习07 - 分组

使用PopGroup可对粒子进行分组操作,并通过表达式从而更灵活的处理粒子行为。 1.创建box作为发射器,连接popnet节点。 2.双击进入popnet,添加popwind添加向上风力。现在播放粒子可见粒子向上方移动。 3.添加popgroup进行分组,开启…

机器学习复习3--模型评估

误差与过拟合 我们将学习器对样本的实际预测结果与样本的真实值之间的差异称为:误差(error)。 误差定义: ①在训练集上的误差称为训练误差(training error)或经验误差(empirical error&#x…

Docker 镜像上传到 AWS ECR:从构建到推送的全流程

一、在 EC2 实例中安装 Docker(适用于 Amazon Linux 2) 步骤 1:连接到 EC2 实例 ssh -i your-key.pem ec2-useryour-ec2-public-ip步骤 2:安装 Docker sudo yum update -y sudo amazon-linux-extras enable docker sudo yum in…