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

React Native项目安装react-native-navigation遇Android构建错误求助

React Native集成react-native-navigation 编译错误解决方案

问题背景

我正在为React Native项目集成wix的react-native-navigation,已完成以下操作:

  • 通过CLI初始化项目,安装react-native-navigation,按配置说明完成手动配置和rnn-link操作。

第一个错误:找不到sdkmanager

运行react-native run-android时出现编译失败,报错指向node_modules\react-native-navigation\lib\android\app\build.gradle第177行:

Cannot run program "C:\Users\Paul\AppData\Local\Android\Sdk/cmdline-tools/latest/bin/sdkmanager": CreateProcess error=2, The system cannot find the file specified

原代码调用无后缀的sdkmanager,但Windows系统下该路径只有sdkmanager.bat。

修改代码后出现第二个错误

修改第177行代码为调用sdkmanager.bat后,编译进入执行阶段又崩溃:

Could not determine the dependencies of task ':react-native-navigation:compileReactNative63DebugAidl'.
> Installed Build Tools revision 33.0.0 is corrupted. Remove and install again using the SDK Manager.

解决方案

1. 修复sdkmanager跨平台调用问题(避免直接修改node_modules)

直接修改node_modules文件会在依赖更新后失效,建议用patch-package打持久化补丁:

  • 安装patch-package:
    npm install patch-package --save-dev
    
  • 找到node_modules\react-native-navigation\lib\android\app\build.gradle第177行附近的代码,替换为跨平台兼容写法:
    if (!buildToolsDir.exists()) {
        def sdkManagerCommand = Os.isFamily(Os.FAMILY_WINDOWS) ? "sdkmanager.bat" : "sdkmanager"
        def command = "${sdkDir.absolutePath}/cmdline-tools/latest/bin/${sdkManagerCommand} build-tools;${buildToolsVersion}"
        command.execute().waitForProcessOutput(System.out, System.err)
    }
    
  • 生成补丁:
    npx patch-package react-native-navigation
    
  • 后续执行npm install时,补丁会自动应用。

2. 解决Build Tools 33.0.0损坏问题

  • 打开Android Studio的SDK Manager,切换到SDK Tools标签页
  • 找到Android SDK Build-Tools 33.0.0,取消勾选后点击Apply完成删除
  • 重新勾选该版本(或选择与你的RN版本兼容的旧版本,如30.0.3),点击Apply重新安装
  • 清理项目缓存:
    # 进入android目录执行
    gradlew clean
    # 回到根目录
    rm -rf node_modules package-lock.json
    npm install
    
  • 再次执行react-native run-android

额外检查项

  • 确认ANDROID_HOME环境变量指向正确的SDK路径(如C:\Users\Paul\AppData\Local\Android\Sdk)
  • 在SDK Manager中确保Android SDK Command-line Tools (latest)已完整安装
  • 验证react-native-navigation版本与你的React Native版本兼容(如RN 0.63对应rnn 6.x系列)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 01:50:37