Expo SDK 52打包Android APK后闪屏后白屏问题求助
Expo 52.0.25 EAS打包Android APK后闪屏白屏排查方案
检查EAS构建调试日志
- 修改
eas.json构建配置,生成调试版APK:{ "build": { "development": { "developmentClient": true, "distribution": "internal", "android": { "buildType": "debug" } } } } - 安装调试版APK后,执行
adb logcat -s Expo过滤Expo相关日志,排查是否有隐藏的加载错误(之前未过滤可能遗漏关键信息)。
- 修改
验证资产打包配置
- 确认
app.json中expo.assets字段已正确声明所有本地资产路径,EAS打包需显式配置才能将资产纳入APK:"expo": { "assets": ["./assets/fonts/", "./assets/images/"] } - 临时移除所有自定义资产,用纯空白组件测试打包,排查是否因资产加载阻塞导致白屏。
- 确认
排查组件渲染阻塞
- 检查根组件(如
App.js)是否存在未处理的异步操作:避免在组件函数体直接调用异步函数,改用useEffect并添加加载状态:export default function App() { const [loading, setLoading] = useState(true); useEffect(() => { // 异步操作示例 setTimeout(() => setLoading(false), 1000); }, []); if (loading) return <ActivityIndicator size="large" />; return <View><Text>正常内容</Text></View>; }
- 检查根组件(如
清理依赖并重新构建
- 删除
node_modules、package-lock.json/yarn.lock,执行npm install或yarn install重新安装依赖。 - 运行
expo doctor再次确认环境无问题后,重新执行EAS打包。
- 删除
检查设备权限
- 确认测试手机已开启应用的网络权限(若项目含网络请求),部分设备会限制未知来源应用的网络访问,手动开启后重试。
内容的提问来源于stack exchange,提问作者Lucas Steinbach
相关产品推荐
相关产品推荐

