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

React Native从0.75.3升级到0.80.1(Hermes+新架构)后启动崩溃:initialize is not a function错误求助

React Native从0.75.3升级到0.80.1(Hermes+新架构)后启动崩溃:initialize is not a function错误求助

兄弟我之前也碰到过Turbo Monorepo下RN跨大版本升级启动崩溃的糟心事,尤其是新架构+Hermes的组合,太折磨人了!给你几个亲测有效的排查方向,你可以逐个试试:

  • 检查Monorepo的Metro配置是否适配0.80.x
    0.80.x对Metro的模块解析逻辑要求更严格,Turbo Monorepo的共享依赖很容易出问题。你得确保metro.config.js里正确配置了根目录监听和模块映射:

    const { getDefaultConfig, mergeConfig } = require('@react-native/metro-config');
    const path = require('path');
    
    module.exports = mergeConfig(getDefaultConfig(__dirname), {
      watchFolders: [path.resolve(__dirname, '../../')], // 指向Monorepo根目录
      resolver: {
        extraNodeModules: new Proxy({}, {
          get: (target, name) => path.join(process.cwd(), `node_modules/${name}`),
        }),
      },
    });
    

    另外别忘了在react-native.config.js里确认新架构已开启:

    module.exports = {
      newArchEnabled: true,
    };
    
  • 彻底清理所有缓存(别漏了Hermes字节码)
    跨版本升级最容易栽在缓存上,普通的清理根本不够,得全量清:

    • 执行 npx react-native clean 清理RN缓存
    • iOS端:Xcode里点Product > Clean Build Folder,或者手动删掉~/Library/Developer/Xcode/DerivedData里对应项目的文件夹
    • Android端:进入android目录执行 ./gradlew clean
    • Monorepo根目录:删掉node_modules和所有lock文件(package-lock.json/yarn.lock/pnpm-lock.yaml),重新安装依赖
    • 删掉Hermes相关缓存:比如iOS的Pods/HermesEngine,Android的node_modules/hermes-engine
  • 验证新架构的Codegen生成是否正常
    0.80.x的新架构Codegen逻辑有更新,哪怕你删了所有自定义代码,也要确保RN本身的Codegen没问题:

    • 执行 npx react-native codegen 看看有没有报错
    • iOS端:检查Podfile里的新架构配置,然后重新pod install:
      use_react_native!(
        :path => config[:reactNativePath],
        :new_arch_enabled => true,
        :hermes_enabled => true
      )
      
    • Android端:确认android/gradle.properties里的配置:
      newArchEnabled=true
      hermesEnabled=true
      
      然后重新同步Gradle
  • 锁定Hermes版本避免Monorepo冲突
    RN每个版本对应固定的Hermes版本,如果你Monorepo里其他项目依赖了不同版本,很容易冲突。可以在根目录package.json里加版本锁:

    "resolutions": {
      "hermes-engine": "0.12.0" // 这个版本匹配RN 0.80.1,可查RN官方release notes确认
    }
    

    然后重新安装依赖,确保全Monorepo用同一个Hermes版本

  • 临时关闭新架构/Hermes排查问题
    如果上面的方法都没用,你可以先临时关闭新架构,看看能不能启动,缩小问题范围:

    • 修改react-native.config.js的newArchEnabled: false
    • 修改Androidgradle.properties的newArchEnabled=false
    • 修改iOS Podfile的:new_arch_enabled => false,重新pod install
    • 如果关闭后能正常启动,那问题肯定出在新架构的配置上,再针对性排查

我当时就是Metro配置没跟上0.80.x的要求,加上Hermes缓存冲突,清完所有缓存并调整Metro配置就搞定了。你逐个试这些方法,应该能找到问题所在!

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.07 12:14:31