Flutter移除USB后物理设备上Splash screen无法显示求助
解决flutter_native_splash启动页拔USB后白屏的问题
1. 排查资源打包问题
- 核对
pubspec.yaml里的启动页资源路径,避免文件名或目录拼写错误,防止release打包时资源未被包含 - 执行
flutter clean清空缓存,重新运行flutter pub run flutter_native_splash:create生成启动页资源,再重新构建release包
2. Android端配置检查
- 打开
android/app/src/main/res/drawable/launch_background.xml,确认图片引用路径正确,避免release模式下资源加载失败 - 检查
AndroidManifest.xml中的启动Activity,确保android:theme属性指向的@style/LaunchTheme正确关联了启动页drawable资源 - 临时关闭Android资源压缩测试:在
android/app/build.gradle的buildTypes -> release块中添加shrinkResources false和minifyEnabled false,排除压缩导致的资源丢失
3. iOS端配置检查(针对iOS设备测试)
- 确认
ios/Runner/Assets.xcassets里的LaunchImage已添加全分辨率图片,缺图会导致启动页不显示 - 检查
Info.plist里的UILaunchStoryboardName是否设为LaunchScreen,同时确认LaunchScreen.storyboard正确引用了启动图片
4. 优化Flutter初始化流程
- 若Flutter初始化过慢,原生启动页消失后Flutter未完成渲染,会出现白屏。可在
main.dart中确保初始化完成再启动App:
void main() async { WidgetsFlutterBinding.ensureInitialized(); // 耗时初始化操作改为异步执行,避免阻塞主线程 await initRequiredServices(); runApp(const MyApp()); }
5. 正确安装release包
- 不要用调试模式安装后拔线测试,需生成正式release包(Android执行
flutter build apk --release,iOS通过Xcode打包),再通过adb install或正常渠道安装到设备,确保安装的是完整release版本
内容的提问来源于stack exchange,提问作者Shagun arora
相关产品推荐
相关产品推荐

