Expo SDK 50应用卡在启动页问题求助
Expo Go应用卡在启动页的排查方案
问题背景
应用此前运行正常,近期在Android和iOS模拟器上均出现卡在启动页的情况,已尝试更新所有依赖至最新版本、重新安装所有包,但问题仍未解决,当前使用Expo Go运行应用。
项目依赖配置如下:
{ "name": "myapp", "main": "expo-router/entry", "version": "1.0.0", "scripts": { "start": "expo start", "prebuild": "expo prebuild", "doctor": "expo-doctor@latest", "android": "expo run:android", "ios": "expo run:ios", "web": "expo start --web", "test": "jest --watchAll" }, "jest": { "preset": "jest-expo" }, "dependencies": { "@expo/vector-icons": "^14.0.0", "@gorhom/bottom-sheet": "^4", "@react-native-community/datetimepicker": "7.6.1", "@react-native-picker/picker": "2.6.1", "@react-navigation/native": "^6.0.2", "expo": "~50.0.15", "expo-av": "^13.10.5", "expo-font": "~11.10.3", "expo-image-picker": "~14.7.1", "expo-linking": "~6.2.2", "expo-router": "~3.4.8", "expo-splash-screen": "~0.26.4", "expo-status-bar": "~1.11.1", "expo-system-ui": "~2.9.3", "expo-web-browser": "~12.8.2", "react": "18.2.0", "react-dom": "18.2.0", "react-native": "0.73.6", "react-native-gesture-handler": "~2.14.0", "react-native-reanimated": "~3.6.2", "react-native-safe-area-context": "4.8.2", "react-native-screens": "~3.29.0", "react-native-web": "~0.19.6" }, "devDependencies": { "@babel/core": "^7.20.0", "@types/react": "~18.2.45", "jest": "^29.2.1", "jest-expo": "~50.0.4", "react-test-renderer": "18.2.0", "typescript": "^5.1.3" }, "private": true }
排查与解决步骤
1. 查看启动日志,定位报错信息
启动项目时执行 expo start -c(清理缓存后启动),同时打开模拟器日志面板:
- Android模拟器:用Android Studio的Logcat过滤
ReactNative或Expo相关日志 - iOS模拟器:打开Xcode控制台,查看应用启动时的报错信息
重点关注未处理的Promise异常、模块导入失败、expo-splash-screen相关错误,这些是启动页卡住的常见诱因。
2. 检查expo-splash-screen使用逻辑
确认代码中是否正确调用SplashScreen.hideAsync():
- 检查
_layout.tsx或入口文件,避免有阻塞hideAsync()执行的代码 - 确保
expo-font等预加载资源的Promise被正确处理,防止未捕获异常导致启动页无法隐藏
3. 清理本地与模拟器缓存
- 执行
expo r -c清理Expo本地缓存 - Android模拟器:进入设置→应用→Expo Go→存储→清除缓存
- iOS模拟器:删除Expo Go应用后重新安装
4. 修复依赖兼容性问题
你的配置中@gorhom/bottom-sheet使用^4模糊版本,可能存在与Expo 50不兼容的子版本,建议锁定兼容版本:
npm install @gorhom/bottom-sheet@4.6.3
同时运行npx expo-doctor检查依赖冲突,按提示修复不兼容项。
5. 测试空白项目排除代码问题
创建空白Expo项目验证环境是否正常:
npx create-expo-app test-app cd test-app expo start
若空白项目能正常启动,说明问题出在业务代码中,可逐步迁移代码排查;若仍卡住,需更新Expo CLI和Expo Go到最新版本。
6. 匹配Expo Go与SDK版本
确保模拟器中Expo Go版本与项目使用的Expo SDK 50.0.15匹配,版本不兼容会直接导致启动失败,可通过Expo Go应用内提示更新。
内容的提问来源于stack exchange,提问作者ameyalambat128
相关产品推荐
相关产品推荐

