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

Expo项目Android12/13启动时应用图标先于闪屏显示问题求助

修复Expo Android 12+ 启动时图标先于闪屏显示的问题

方法1:统一图标与闪屏的背景色配置

在app.json(或app.config.js)里,把自适应图标背景色、闪屏背景色、闪屏图标背景色设为一致,让系统过渡更平滑:

{
  "expo": {
    "android": {
      "adaptiveIcon": {
        "foregroundImage": "./assets/adaptive-icon-foreground.png",
        "backgroundColor": "#你的闪屏背景色"
      },
      "splash": {
        "image": "./assets/splash.png",
        "resizeMode": "cover",
        "backgroundColor": "#你的闪屏背景色",
        "showIcon": true,
        "iconBackgroundColor": "#你的闪屏背景色"
      }
    }
  }
}

系统会用这个统一颜色作为过渡层,避免图标突兀跳出。

方法2:用Expo Splash Screen API手动控闪屏

如果默认配置失效,用expo-splash-screen库完全掌控闪屏隐藏时机:

  1. 先装依赖:
npx expo install expo-splash-screen
  1. 在入口组件(比如App.js)里加控制逻辑:
import React, { useEffect, useState } from 'react';
import * as SplashScreen from 'expo-splash-screen';

// 阻止闪屏自动消失
SplashScreen.preventAutoHideAsync();

export default function App() {
  const [appReady, setAppReady] = useState(false);

  useEffect(() => {
    async function initApp() {
      try {
        // 这里放你的应用初始化逻辑,比如加载资源、请求接口等
        await new Promise(resolve => setTimeout(resolve, 300)); // 模拟初始化耗时
      } catch (err) {
        console.warn(err);
      } finally {
        // 应用准备好再隐藏闪屏
        setAppReady(true);
        await SplashScreen.hideAsync();
      }
    }

    initApp();
  }, []);

  if (!appReady) return null;

  // 这里写你的应用内容
  return <></>;
}

这种方式能确保闪屏一直显示到应用完全就绪,不会提前切到图标。

方法3:更新Expo SDK到最新稳定版

旧版SDK可能存在Android 12+的适配漏洞,更新后大概率能修复这类问题:

npx expo upgrade

更新完成后重新构建Android应用验证效果。

方法4:清理缓存并检查资源规格

  • 确认闪屏图片尺寸符合要求:Android建议1242x2688(竖屏)或2688x1242(横屏)
  • 自适应图标前景图用1024x1024尺寸
  • 构建前清理缓存,避免旧配置残留:
npx expo prebuild --clean

内容的提问来源于stack exchange,提问作者Shivam

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 11:17:13