You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

升级React Native 0.78.0项目后iOS/Android启动均报错求助

React Native 0.78.0 升级启动报错问题

我新建了React Native 0.78.0版本项目用于升级旧项目,将旧项目的所有必要依赖安装到新项目后,iOS和Android平台启动应用时均出现错误。

项目依赖列表

{
  "@invertase/react-native-apple-authentication": "^2.4.0",
  "@kingstinct/react-native-healthkit": "^8.5.0",
  "@ptomasroos/react-native-multi-slider": "^2.2.2",
  "@react-native-async-storage/async-storage": "^2.1.2",
  "@react-native-community/datetimepicker": "^8.3.0",
  "@react-native-community/netinfo": "^11.4.1",
  "@react-native-community/push-notification-ios": "^1.11.0",
  "@react-native-firebase/analytics": "^21.11.0",
  "@react-native-firebase/app": "^21.11.0",
  "@react-native-firebase/crashlytics": "^21.11.0",
  "@react-native-firebase/messaging": "21.11.0",
  "@react-native-google-signin/google-signin": "^13.2.0",
  "@react-native-picker/picker": "^2.11.0",
  "@react-navigation/bottom-tabs": "^7.2.1",
  "@react-navigation/native": "^7.0.15",
  "@react-navigation/stack": "^7.1.2",
  "base-64": "^1.0.0",
  "deprecated-react-native-prop-types": "^5.0.0",
  "email-validator": "^2.0.4",
  "get-video-id": "^4.1.7",
  "jwt-decode": "^4.0.0",
  "moment": "^2.30.1",
  "react": "19.0.0",
  "react-native": "0.78.0",
  "react-native-background-actions": "^4.0.1",
  "react-native-background-timer": "^2.4.1",
  "react-native-branch": "^6.5.0",
  "react-native-chart-kit": "^6.12.0",
  "react-native-collapsible": "^1.6.2",
  "react-native-device-info": "^14.0.4",
  "react-native-dialog": "^9.3.0",
  "react-native-disable-battery-optimizations-android": "^1.0.7",
  "react-native-draggable-flatlist": "^4.0.1",
  "react-native-easy-toast": "^2.3.0",
  "react-native-email": "^2.1.0",
  "react-native-fast-image": "^8.6.3",
  "react-native-fbsdk": "^3.0.0",
  "react-native-gesture-handler": "^2.24.0",
  "react-native-get-random-values": "^1.11.0",
  "react-native-google-mobile-ads": "^14.9.1",
  "react-native-iap": "^12.16.2",
  "react-native-image-picker": "^8.2.0",
  "react-native-image-progress": "^1.2.0",
  "react-native-iphone-x-helper": "^1.3.1",
  "react-native-keep-awake": "^4.0.0",
  "react-native-keyboard-aware-scroll-view": "^0.9.5",
  "react-native-keyboard-aware-scrollview": "^2.1.0",
  "react-native-link-preview": "^1.4.2",
  "react-native-material-menu": "^2.0.0",
  "react-native-modal": "^13.0.1",
  "react-native-modal-datetime-picker": "^18.0.0",
  "react-native-picker-select": "^9.3.1",
  "react-native-pull-to-refresh": "^2.1.3",
  "react-native-push-notification": "^8.1.1",
  "react-native-reanimated": "^3.17.1",
  "react-native-safe-area-context": "^5.3.0",
  "react-native-screens": "^4.9.1",
  "react-native-share": "^12.0.9",
  "react-native-share-menu": "^6.0.0",
  "react-native-sound": "^0.11.2",
  "react-native-splash-screen": "^3.3.0",
  "react-native-store-review": "^0.4.3",
  "react-native-svg": "^15.11.2",
  "react-native-swipeout": "^2.3.6",
  "react-native-switch-toggle": "^2.2.1",
  "react-native-text-input-mask": "^3.2.0",
  "react-native-tts": "^4.1.1",
  "react-native-vector-icons": "^10.2.0",
  "react-native-version-check": "^3.4.7",
  "react-native-watch-connectivity": "^1.1.0",
  "react-navigation": "^5.0.0",
  "uuid": "^11.1.0"
}

报错截图

报错截图


排查与修复建议

1. 修复React版本核心冲突

React Native 0.78.0官方要求React版本为18.3.x,你当前使用的react: 19.0.0是核心冲突点,先降级:

npm install react@18.3.1 --save-exact
# 或使用yarn
yarn add react@18.3.1 --exact

2. 清理导航库版本冲突

你同时安装了@react-navigation/* 7.x新版本和旧版react-navigation: ^5.0.0,二者完全不兼容,直接删除旧版:

npm uninstall react-navigation
# 或使用yarn
yarn remove react-navigation

3. 替换/适配老旧第三方依赖

部分依赖未适配RN 0.78.0,建议调整:

  • react-native-splash-screen:已停止维护,RN 0.70+推荐使用官方SplashScreen API替代
  • react-native-pull-to-refresh:老旧库,可替换为@react-native-community/pull-refresh或RN内置的RefreshControl
  • react-native-swipeout:未适配RN新架构,建议用react-native-gesture-handler实现自定义滑动删除

4. 执行全量清理重建

完成上述修改后,执行以下步骤清除缓存并重建项目:

# 清除包管理器缓存
npm cache clean --force
# 或 yarn cache clean

# 删除依赖目录和锁文件
rm -rf node_modules package-lock.json yarn.lock

# 重新安装依赖
npm install
# 或 yarn install

# iOS端额外操作
cd ios && pod install && cd ..
npx react-native run-ios

# Android端额外操作
cd android && ./gradlew clean && cd ..
npx react-native run-android

5. 定位具体报错

如果仍有问题,查看终端详细报错日志:

  • iOS:打开Xcode查看Build Logs定位编译错误
  • Android:查看Android Studio的Logcat或终端输出的Gradle报错,针对具体问题逐个处理

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

火山引擎 最新活动