升级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+推荐使用官方SplashScreenAPI替代react-native-pull-to-refresh:老旧库,可替换为@react-native-community/pull-refresh或RN内置的RefreshControlreact-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




