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

Expo EAS构建后应用出现白屏问题求助

Expo EAS构建后应用出现白屏问题求助

兄弟我太懂这种开发环境跑起来顺得一批,一打包就白屏的崩溃感了!dev模式下hooks、组件都正常,EAS构建也没报错,结果安装后直接白屏,这种情况十有八九是生产环境下有静默的未捕获错误,或者是打包时的配置、依赖问题,给你几个实用的排查方向:

  • 先抓生产环境的错误日志:这是最快定位问题的方法,安卓的话把设备连电脑,运行adb logcat *:E命令,过滤出错误日志,里面大概率会显示白屏的具体原因——比如某个模块找不到、变量undefined、hook里的异步请求失败之类的,dev模式下有热重载和错误提示,生产环境这些都被关掉了,所以只能看系统日志。
  • 本地模拟生产打包环境调试:不用每次都等EAS构建,直接跑expo start --no-dev --minify,这个命令会以生产模式(压缩代码、关闭dev工具)启动应用,能复现大部分打包后的问题,调试起来快很多。
  • 检查你的_layout.tsx配置:看你贴的代码开头已经导入了GestureHandlerRootView,一定要确认它完整包裹了整个应用的根组件,比如:
    import 'react-native-gesture-handler';
    import { GestureHandlerRootView } from 'react-native-gesture-handler';
    import { fonts } from '@/constants/fonts';
    import { useBingoBoards } from '@/hooks/useBingoBoards';
    
    export default function RootLayout() {
      const boards = useBingoBoards();
      // 必须给GestureHandlerRootView设置flex:1,不然可能导致内容不显示
      return (
        <GestureHandlerRootView style={{ flex: 1 }}>
          {/* 这里放你的路由出口或者其他子组件 */}
        </GestureHandlerRootView>
      );
    }
    
    另外,你用的useBingoBoards hook也要检查下,有没有在生产环境下不可用的逻辑——比如是不是用了__DEV__条件下的变量,或者调用了dev环境才有的API,生产环境下这些会变成undefined,触发错误。
  • 检查环境变量和依赖:如果你的代码里用了环境变量,要确认EAS构建时这些变量已经正确注入(可以在eas.json里配置);另外检查依赖版本,比如react-native-gesture-handler和你当前的Expo SDK版本是不是兼容,版本不匹配很容易导致生产打包后出问题。
  • 排查静态资源和路径问题:比如你导入的@/constants/fonts,要确认字体文件在生产打包时被正确包含进去了,路径有没有写错,静态资源加载失败也可能导致白屏。

先从抓日志开始,基本能快速定位到问题,祝你早日解决!

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.08 13:59:36