HarmonyOS鸿蒙Next中RN打Release包报error: undefined symbol: folly::f14::detail::kEmptyTagVector

HarmonyOS鸿蒙Next中RN打Release包报error: undefined symbol: folly::f14::detail::kEmptyTagVector

打release包报如下错: 

error: undefined symbol: folly::f14::detail::kEmptyTagVector

3 回复

【解决方案】

目前很多三方库的开发都会引入folly的头文件,所以三方库的包编译需要加上folly的相关配置。

target_compile_options(rnoh_reanimated PUBLIC ${folly_compile_options})
target_compile_options(rnoh_safe_area PUBLIC ${folly_compile_options})

更多关于HarmonyOS鸿蒙Next中RN打Release包报error: undefined symbol: folly::f14::detail::kEmptyTagVector的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中遇到RN Release包报错"undefined symbol: folly::f14::detail::kEmptyTagVector",通常是由于React Native依赖的Folly库版本不兼容导致。该符号是Facebook Folly库v14中的内部实现符号。在鸿蒙Next环境中,需要确保使用的React Native版本完全适配鸿蒙NDK工具链。这个问题可能出现在使用了为Android编译的第三方原生模块,或者鸿蒙Next的NDK工具链缺少对特定Folly版本的支持。

这是React Native在HarmonyOS Next上编译时的常见链接错误,主要原因是Folly库的符号未正确链接。以下是解决方案:

  1. 确保项目中使用的RN版本与HarmonyOS Next兼容
  2. 检查build.gradle中的依赖配置:
implementation 'com.facebook.folly:folly:2021.07.22.00'
  1. 在CMakeLists.txt中添加Folly链接:
find_library(folly folly)
target_link_libraries(your_target PRIVATE folly)
  1. 如果使用预编译库,请确保NDK版本与Folly兼容

这个问题通常出现在RN 0.68+版本,因为该版本开始使用F14哈希表实现。建议同步更新React Native和Folly到最新稳定版本。

回到顶部