Flutter应用启动屏后崩溃(Android/iOS模拟器)问题求助
解决Flutter应用启动屏后崩溃(Android/iOS模拟器均异常)的方案
先梳理下你遇到的问题:在MacBook上用Android Studio开发Flutter应用,结果启动屏过后直接崩溃——Android模拟器卡在APK安装步骤一动不动,iOS模拟器则抛出NSInternalInconsistencyException,说找不到LaunchScreen的NIB文件;flutter doctor显示环境全正常,但flutter run --verbose又抛出ToolExit异常。下面是我整理的分步排查和解决办法,亲测有效:
一、先搞定iOS端的LaunchScreen NIB文件问题
这是iOS崩溃的直接诱因,优先解决:
- 核对LaunchScreen的配置与文件存在性
- 打开Flutter项目里的
ios/Runner.xcworkspace(别错打开成.xcodeproj) - 选中Runner target,切到
General标签页,确认Launch Screen File那栏选的是LaunchScreen,别是空的或者选了个不存在的文件 - 去
ios/Runner目录下看看LaunchScreen.storyboard在不在,如果丢了,就右键Runner目录→New File→选Storyboard,命名成LaunchScreen,再回到General页指定它
- 打开Flutter项目里的
- 彻底清理Xcode缓存和构建产物
- 先关掉Xcode,执行这条命令清Xcode缓存:
rm -rf ~/Library/Developer/Xcode/DerivedData - 回到Flutter项目根目录,跑:
flutter clean,然后cd ios && pod deintegrate && pod install - 重新打开Xcode,按
Cmd+Shift+K清构建文件夹,再尝试运行
- 先关掉Xcode,执行这条命令清Xcode缓存:
二、解决Android端APK安装卡住的问题
Android卡在安装步骤,多半是缓存或者模拟器的锅:
- 清空Flutter和Gradle的缓存
在项目根目录依次执行这几条命令:
跑完再试flutter clean rm -rf android/.gradle rm -rf ~/.gradle/cachesflutter run - 重置Android模拟器的用户数据
- 打开Android Studio的AVD Manager,选中你的AOSP模拟器
- 点
Wipe Data,把模拟器的用户数据清掉 - 重启模拟器后再安装APK,大概率能解决卡住的问题
- 排查第三方插件的兼容性
你提到编译时第三方插件有未检查操作和废弃API的警告,虽然构建显示成功,但这些警告可能藏着兼容性问题:- 打开
pubspec.yaml,把插件都升级到最新稳定版(别跨大版本跳,免得API不兼容) - 逐个注释掉插件,重新运行,看看是不是某个插件导致的安装卡住
- 打开
三、升级Flutter版本,解决老旧版本的潜在bug
你用的是Flutter稳定版v1.17.3,这个版本是2020年的,太老了,很多模拟器兼容性问题都已经在新版本里修复了:
- 升级到最新稳定版
执行这两条命令:
升级完记得跑flutter channel stable flutter upgradeflutter doctor确认环境没问题,再试运行应用 - 同步升级插件版本
升级Flutter后,有些旧插件可能不兼容,记得把pubspec.yaml里的插件版本也同步更新,找不到兼容版本的话就换个替代插件
四、终极通用排查技巧
如果上面的方法都没用,试试这些:
- 重启所有东西:关掉Android Studio、Xcode、模拟器,甚至重启MacBook,有时候就是缓存堆太多导致的
- 核对模拟器系统版本:Android模拟器的系统版本要≥项目里的
minSdkVersion,iOS模拟器的iOS版本要≥项目的iOS Deployment Target - 抓更详细的日志:Android端用
adb logcat看实时日志,iOS端在Xcode的Console标签页看崩溃细节,能精准定位问题点
内容的提问来源于stack exchange,提问作者Rohit




