问题:RNOH_CAPI_ARCH环境变量配置错误

现象:编译报错,提示CustomComponentArkUINodeHandleFactory.h:62:12类型转换错误。

LastFatalMessage:____ RNInstanceFactory.h:287> The C_API architecture also needs to be enabled on the CPP side. Have you set the RNOH_C_API_ARCH="1" environment variable, completely closed and reopened DevEco Studio and run Build > Clean Project?
Fault thread info:

这个错误是由于‌RNOH C_API架构环境变量未正确设置‌导致的。错误信息明确指出需要在CPP端启用C_API架构。

问题核心原因:

‌主要问题‌:RNOH_C_API_ARCH环境变量未设置为"1",导致React Native OpenHarmony的C++端无法识别C_API架构。

‌具体表现‌:

  • RNInstanceFactory.h文件第287行检测到C_API架构未启用
  • 编译时CPP端与配置不匹配
  • 需要重新清理项目并设置环境变量

完整解决方案:

  1. 设置环境变量,根据你的操作系统进行配置:

‌Windows系统‌:

# 在命令提示符中设置
set RNOH_C_API_ARCH=1
# 或者在系统环境变量中添加
变量名:RNOH_C_API_ARCH
变量值:1

‌macOS/Linux系统‌

# 编辑 ~/.zshrc 或 ~/.bash_profile
export RNOH_C_API_ARCH=1
  1. 执行完整修复流程:
  • ‌步骤一‌:完全关闭DevEco Studio,确保IDE完全退出,不仅仅是关闭窗口
  • 步骤二‌:重新启动DevEco Studio,以管理员权限启动确保环境变量生效
  • ‌步骤三‌:执行清理操作,点击菜单 Build > Clean Project,删除项目中的 .cxx 目录(如清理后仍不生效)
  • ‌步骤四‌:重新编译运行
  1. 验证配置生效:

在终端中检查环境变量是否设置成功:

# 检查环境变量
echo $RNOH_C_API_ARCH  # macOS/Linux
echo %RNOH_C_API_ARCH% # Windows

预防措施,为了避免类似问题再次出现,建议:

‌在CMakeLists.txt中设置‌

cmake
Copy Code
set(RNOH_C_API_ARCH 1)

‌在系统环境变量中永久配置‌,这样每次启动都会自动生效。立即操作建议‌:先完全关闭DevEco Studio,设置RNOH_C_API_ARCH=1环境变量,然后重新启动IDE执行Build > Clean Project,这个完整流程通常能解决问题。


真实解决方案:

设置环境变量:

export RNOH_C_API_ARCH=1
 
# 或者在CMakeLists.txt中设置
set(RNOH_C_API_ARCH 1)

完整修复步骤:

  • 设置环境变量 RNOH_C_API_ARCH=1
  • 重启DevEco Studio
  • 执行 Build > Clean Project
  • 删除 .cxx 目录(如不生效)
  • 重新编译运行

请添加图片描述


欢迎大家加入开源鸿蒙跨平台开发者社区,一起共建开源鸿蒙跨平台生态。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐