You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native 0.76.3安装第三方库后Android构建失败求助

React Native 0.76.3 安装第三方库后Android构建失败

我使用React Native 0.76.3版本创建的项目,初始构建完全正常,但安装react-navigation、@react-native-community/blur或react-native-safe-area-context等第三方库后,重新构建Android项目时出现失败,核心错误是找不到react/renderer/components/safeareacontext/Props.h文件,完整错误日志如下:

Task :react-native-safe-area-context:generateCodegenSchemaFromJavaScript FAILED Task :react-native-screens:generateCodegenSchemaFromJavaScript FAILED

/Users/sourabh/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ --target=aarch64-none-linux-android24 --sysroot=/Users/sourabh/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot -Dreact_codegen_safeareacontext_EXPORTS -I/Users/sourabh/Desktop/Workspace/AwesomeProject/node_modules/react-native-safe-area-context/android/src/main/jni/. -I/Users/sourabh/Desktop/Workspace/AwesomeProject/node_modules/react-native-safe-area-context/android/src/main/jni/../../../../common/cpp -I/Users/sourabh/Desktop/Workspace/AwesomeProject/node_modules/react-native-safe-area-context/android/src/main/jni/../../../build/generated/source/codegen/jni -I/Users/sourabh/Desktop/Workspace/AwesomeProject/node_modules/react-native-safe-area-context/android/src/main/jni/../../../build/generated/source/codegen/jni/react/renderer/components/safeareacontext -isystem /Users/sourabh/.gradle/caches/8.10.2/transforms/8b60b4f75564ac53567672df7a1c9a73/transformed/fbjni-0.6.0/prefab/modules/fbjni/include -isystem /Users/sourabh/.gradle/caches/8.10.2/transforms/e7a87e28456e3cd3dea6e54dbe4d1714/transformed/react-android-0.76.3-debug/prefab/modules/jsi/include -isystem /Users/sourabh/.gradle/caches/8.10.2/transforms/e7a87e28456e3cd3dea6e54dbe4d1714/transformed/react-android-0.76.3-debug/prefab/modules/reactnative/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security   -fno-limit-debug-info  -fPIC -fexceptions -frtti -std=c++20 -Wall -Wpedantic -Wno-gnu-zero-variadic-macro-arguments -DLOG_TAG="ReactNative" -DFOLLY_NO_CONFIG=1 -DFOLLY_HAVE_CLOCK_GETTIME=1 -DFOLLY_USE_LIBCPP=1 -DFOLLY_CFG_NO_COROUTINES=1 -DFOLLY_MOBILE=1 -DFOLLY_HAVE_RECVMMSG=1 -DFOLLY_HAVE_PTHREAD=1 -DFOLLY_HAVE_XSI_STRERROR_R=1 -MD -MT safeareacontext_autolinked_build/CMakeFiles/react_codegen_safeareacontext.dir/Users/sourabh/Desktop/Workspace/AwesomeProject/node_modules/react-native-safe-area-context/common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewState.cpp.o -MF safeareacontext_autolinked_build/CMakeFiles/react_codegen_safeareacontext.dir/Users/sourabh/Desktop/Workspace/AwesomeProject/node_modules/react-native-safe-area-context/common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewState.cpp.o.d -o safeareacontext_autolinked_build/CMakeFiles/react_codegen_safeareacontext.dir/Users/sourabh/Desktop/Workspace/AwesomeProject/node_modules/react-native-safe-area-context/common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewState.cpp.o -c /Users/sourabh/Desktop/Workspace/AwesomeProject/node_modules/react-native-safe-area-context/common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewState.cpp

In file included from /Users/sourabh/Desktop/Workspace/AwesomeProject/node_modules/react-native-safe-area-context/common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewState.cpp:1: /Users/sourabh/Desktop/Workspace/AwesomeProject/node_modules/react-native-safe-area-context/common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewState.h:3:10: fatal error: 'react/renderer/components/safeareacontext/Props.h' file not found #include <react/renderer/components/safeareacontext/Props.h> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Cause: error=2, No such file or directory

解决步骤

1. 彻底清理项目缓存与构建产物

  • 清除npm/yarn缓存:
    npm cache clean --force
    # 用yarn的话执行下面这句
    yarn cache clean
    
  • 删除项目根目录的依赖文件和锁文件:
    rm -rf node_modules package-lock.json yarn.lock
    
  • 重新安装依赖:
    npm install
    # 用yarn的话执行下面这句
    yarn install
    
  • 清理Android构建缓存:
    cd android && ./gradlew clean
    

2. 验证依赖版本兼容性

确保以下库的版本适配RN 0.76.3:

  • react-native-safe-area-context需要4.10.0及以上版本
  • react-native-screens需要3.29.0及以上版本
    可直接在package.json中指定版本后重新安装。

3. 手动触发Codegen代码生成

RN 0.70+依赖Codegen生成原生绑定代码,手动执行生成命令:

npx react-native generate-codegen

或者进入Android目录单独执行Codegen任务:

cd android && ./gradlew generateCodegenSchemaFromJavaScript

4. 调整NDK版本至RN推荐版本

错误日志中使用的NDK 26.x版本与RN 0.76.3存在兼容性问题,推荐使用NDK 25.2.9519653:
在项目的android/build.gradle中指定NDK版本:

buildscript {
    ext {
        ndkVersion = "25.2.9519653"
    }
    // ...其他原有配置
}

同步Gradle后重新构建项目。

5. 验证自动链接状态

尽管RN 0.70+默认自动链接,但可手动触发链接修复潜在问题:

npx react-native link react-native-safe-area-context

内容的提问来源于stack exchange,提问作者Sourav Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 02:57:34