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
相关产品推荐
相关产品推荐

