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

React Native Android运行报错:未计算指定文件的SHA-1

React Native Android启动SHA-1计算失败问题解决

报错信息

ReferenceError: SHA-1 for file C:\Users\usr\app\node_modules@react-native\metro-config\node_modules@react-native\js-polyfills\console.js (C:\Users\usr\app\node_modules@react-native\metro-config\node_modules@react-native\js-polyfills\console.js) is not computed. Potential causes: 1) You have symlinks in your project - watchman does not follow symlinks. 2) Check blockList in your metro.config.js and make sure it isn't excluding the file path.

at DependencyGraph.getSha1 (C:\Users\usr\app\realapp\node_modules\metro\src\node-haste\DependencyGraph.js:215:13)
at Transformer._getSha1 (C:\Users\usr\lace\realapp\node_modules\metro\src\Bundler.js:26:26)
at Transformer.transformFile (C:\Users\usr\lace\realapp\node_modules\metro\src\DeltaBundler\Transformer.js:107:19)
at Bundler.transformFile (C:\Users\usr\app\realapp\node_modules\metro\src\Bundler.js:60:30)
at async Object.transform (C:\Users\usr\app\realapp\node_modules\metro\src\lib\transformHelpers.js:150:12)
at async Graph._processModule (C:\Users\usr\app\lace\realapp\node_modules\metro\src\DeltaBundler\Graph.js:257:20)
at async Graph._traverseDependenciesForSingleFile (C:\Users\usr\app\realapp\node_modules\metro\src\DeltaBundler\Graph.js:249:5)
at async Promise.all (index 1)
at async Graph.initialTraverseDependencies (C:\Users\usr\app\realapp\node_modules\metro\src\DeltaBundler\Graph.js:233:5)
at async DeltaCalculator._getChangedDependencies (C:\Users\usr\app\realapp\node_modules\metro\src\DeltaBundler\DeltaCalculator.js:229:25)

解决步骤

1. 移除项目符号链接并重装依赖

  • 检查项目中是否存在npm link/yarn link创建的符号链接,执行解除命令:
    # yarn环境
    yarn unlink <关联的包名>
    # npm环境
    npm unlink <关联的包名>
    
  • 强制重装依赖:
    yarn install --force
    # 或npm
    npm install --force
    

2. 检查并调整metro.config.js的blockList

  • 打开项目根目录的metro.config.js,找到blockList配置项
  • 确保没有排除报错路径node_modules/@react-native/metro-config/node_modules/@react-native/js-polyfills/console.js,删除相关排除规则,示例配置:
    const { getDefaultConfig, mergeConfig } = require('@react-native/metro-config');
    const config = {};
    module.exports = mergeConfig(getDefaultConfig(__dirname), config);
    

3. 清除缓存并重启服务

  • 停止当前Metro服务,清除Metro缓存:
    npx metro-cache clean
    
  • 可选:清除Android构建缓存
    cd android && ./gradlew clean && cd ..
    
  • 重新启动应用:
    yarn android
    

4. 禁用Watchman(备选方案)

  • 在metro.config.js中添加配置,用文件系统监听替代Watchman:
    module.exports = {
      watcher: 'fs',
      resolver: {
        disableHierarchicalLookup: true,
      },
    };
    
  • 重启Metro服务

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 05:45:15