React Native Android构建报错:无法找到库-lc++_shared
问题简述
构建React Native Android项目时触发链接错误,提示无法找到libc++_shared.so库,错误出现在react-native-screens的代码生成模块编译阶段,使用React Native 0.76.0、NDK 26.1.10909125。
解决方案
1. 验证NDK库文件完整性
首先检查NDK对应架构目录下是否存在libc++_shared.so:
C:\Users\ishan\AppData\Local\Android\Sdk\ndk\26.1.10909125\toolchains\llvm\prebuilt\windows-x86_64\sysroot\usr\lib\x86_64-linux-android\24\libc++_shared.so
如果文件缺失,打开Android SDK Manager,卸载当前NDK后重新下载安装。
2. 显式指定C++运行时库
在android/app/build.gradle中添加externalNativeBuild配置,强制使用c++_shared:
android { // ... 已有配置 externalNativeBuild { cmake { arguments "-DANDROID_STL=c++_shared" } } }
也可以在项目根目录的gradle.properties中全局配置:
android.externalNativeBuild.cmake.arguments=-DANDROID_STL=c++_shared
3. 针对react-native-screens单独配置
如果自动链接导致配置不生效,在android/build.gradle中添加子项目配置:
subprojects { afterEvaluate { project -> if (project.name.contains('react-native-screens')) { project.android { externalNativeBuild { cmake { arguments "-DANDROID_STL=c++_shared" } } } } } }
4. 彻底清理并重新构建
执行以下命令清除缓存和构建产物:
# 清理Gradle构建缓存 cd android && ./gradlew clean # 清理RN缓存 cd .. && npx react-native clean # 重新安装依赖 rm -rf node_modules package-lock.json npm install # 重新构建项目 npx react-native run-android
5. 降级NDK版本
NDK 26部分版本存在兼容性问题,尝试降级到RN 0.76推荐的NDK版本25.2.9519653,修改android/build.gradle中的配置:
ndkVersion = "25.2.9519653"
错误原因说明
该错误源于C++运行时库libc++_shared.so未被正确纳入链接路径,通常由以下原因导致:
- NDK安装不完整,缺失对应架构的库文件
- 第三方库(如react-native-screens)的编译配置与NDK默认STL设置不匹配
- NDK 26+的默认STL策略变更引发兼容性问题
内容的提问来源于stack exchange,提问作者Ishant Chandna
相关产品推荐
相关产品推荐

