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

React Native EAS构建Android预览版启动页不显示问题求助

启动页未显示(白屏)排查方案

以下是针对你使用eas build -p android --profile preview构建后启动页不显示问题的排查方向:

  • 检查启动图资源本身

    • 确认./assets/splash.png文件真实存在,文件名大小写与配置完全匹配(Android文件系统区分大小写)。
    • 验证图片尺寸是否符合Expo Android启动页要求:建议使用1242×2436像素的PNG图,确保适配不同分辨率设备;避免使用透明背景(如果背景色设为白色,透明图会和背景融合导致看起来没显示)。
    • 检查图片格式是否正确:确保是标准PNG格式,没有损坏或被错误保存为其他格式(比如WebP重命名为png)。
  • 清除构建缓存重新构建
    EAS构建可能会复用之前的缓存资源,导致新的启动图未被打包。执行以下命令重新构建:

    eas build -p android --profile preview --clear-cache
    
  • 验证资产打包配置
    虽然你的assetBundlePatterns设置为["**/*"],但可以尝试显式指定启动图路径,确保被纳入打包:

    "assetBundlePatterns": [
      "**/*",
      "./assets/splash.png"
    ]
    

    修改后重新构建测试。

  • 检查启动页隐藏逻辑
    确认代码中是否过早调用了SplashScreen.hideAsync()。正确的做法是在App初始化完成(比如数据加载、组件挂载完成)后再隐藏启动页,示例:

    import { SplashScreen } from 'expo-splash-screen';
    import { useEffect, useState } from 'react';
    
    export default function App() {
      const [appIsReady, setAppIsReady] = useState(false);
    
      useEffect(() => {
        async function prepare() {
          try {
            // 这里执行App初始化逻辑,比如加载数据
            await new Promise(resolve => setTimeout(resolve, 2000));
          } catch (e) {
            console.warn(e);
          } finally {
            setAppIsReady(true);
            await SplashScreen.hideAsync();
          }
        }
    
        prepare();
      }, []);
    
      if (!appIsReady) {
        return null;
      }
    
      // 你的App组件内容
      return <View />;
    }
    

    如果没有等待初始化完成就隐藏启动页,会直接显示白屏。

  • 检查Android构建配置
    你的preview构建profile设置了buildType: "apk",可以尝试切换为aab格式构建测试,看是否解决问题:
    修改app.json中preview的配置:

    "preview": {
      "android": {
        "buildType": "aab"
      }
    }
    

    部分情况下APK构建可能存在资源打包异常,AAB格式能更好地适配Android资源系统。

内容的提问来源于stack exchange,提问作者Hakimov-dev

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 17:23:18