Flutter中launcher_icon与native_splash的Android启动页异常问题
Android端Flutter启动页不显示问题修复方案
针对你遇到的Android端仅显示应用图标、不加载自定义启动页的问题,可以按以下步骤排查修复:
1. 适配Android 12+的启动页配置
你的现有配置未针对Android 12及以上版本做适配,这是高版本Android启动页失效的常见原因。修改pubspec.yaml,添加Android 12专属配置:
flutter_native_splash: color: "#fafafa" image: assets/splash_screen.png color_dark: "#000000" image_dark: assets/splash_screen_dark.png android: true ios: true android_gravity: fill ios_content_mode: scaleAspectFill # 添加Android 12适配配置 android_12: image: assets/splash_screen.png image_dark: assets/splash_screen_dark.png background_color: "#fafafa" background_color_dark: "#000000"
2. 校验资源文件与路径
- 确认
assets/splash_screen.png、assets/splash_screen_dark.png文件存在,路径大小写完全匹配(Android对文件路径大小写敏感)。 - 确保图片尺寸符合规范:建议使用1080x1920像素以上的图片,避免因尺寸过小导致显示异常。
3. 清理并重新生成资源
执行以下命令彻底清理旧资源并重新生成:
# 清理Flutter缓存 flutter clean # 重新生成启动页 flutter pub run flutter_native_splash:create # 重新生成应用图标 flutter pub run flutter_launcher_icons:main
4. 检查Android项目配置
- 打开
android/app/src/main/AndroidManifest.xml,确认启动Activity的android:theme引用了flutter_native_splash生成的启动主题,示例:<activity android:name=".MainActivity" android:exported="true" android:theme="@style/LaunchTheme" android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode" android:hardwareAccelerated="true" android:windowSoftInputMode="adjustResize"> - 查看
android/app/src/main/res/values/styles.xml和values-night/styles.xml,确认LaunchTheme未被自定义代码覆盖,保持flutter_native_splash自动生成的配置。
5. 清除缓存并重装应用
- 卸载设备/模拟器上的旧应用,彻底清除残留缓存。
- 重新运行
flutter run安装应用,验证启动页是否正常显示。
内容的提问来源于stack exchange,提问作者Matteo
相关产品推荐
相关产品推荐

