Flutter项目中Android模拟器显示device offline但原生Android应用可正常运行的问题排查求助
Flutter项目中Android模拟器显示device offline但原生Android应用可正常运行的问题排查求助
各位好,我在办公笔记本上开发Flutter项目时碰到了一个特别棘手的问题:Android模拟器跑原生Kotlin/Java应用时启动、运行都完全正常,但Flutter就是没法检测或连接到它,一直显示device offline。
我遇到的具体错误信息如下:
adb command 'C:\Users\User 2\AppData\Local\platform-tools\adb.exe -e shell am start-foreground-service -e meter on com.android.emulator.radio.config/.MeterService ' failed: 'adb.exe: device offline`
为了解决这个问题,我已经尝试了一堆排查步骤:
- 杀死并重启ADB服务器:
adb kill-server adb start-server adb devices - 删除并重新创建AVD
- 重新安装Android Studio和Android SDK
- 尝试不同的系统镜像(API 30、API 31)
- 确认使用的adb.exe路径是正确的
- 运行
flutter doctor——除了模拟器显示offline外,其他所有检查项都显示正常 - 启用模拟器的USB调试和开发者选项
- 对模拟器执行冷启动并清除数据
- 在Android Studio中禁用并重新启用「使用检测到的ADB位置」选项
- 执行
flutter clean命令后重新构建项目
另外还有个特殊情况:为了让模拟器能正常启动,我必须手动在config.ini和hardware-qemu.ini两个配置文件中添加以下设置:
hw.gpu.mode = swiftshader_indirect
要是不加这个设置,模拟器要么卡死要么直接崩溃,但就算加了这个临时解决方案,Flutter依然显示模拟器处于offline状态,原生Android应用却能毫无问题地运行。
我的系统配置详情:
- CPU:Intel(R) Core i5-8365U @ 1.60GHz
- 内存:8 GB
- 存储:238 GB SSD
- GPU:Intel UHD Graphics 620(128 MB共享显存)
- Flutter版本:3.27.2
- Android Emulator版本:截至2025年5月的最新版本
补充的错误日志如下:
WARNING | adb command 'C:\Users\User 2\AppData\Local\platform-tools\adb.exe -s emulator-5554 shell settings put system screen_off_timeout 2147483647 ' failed: 'adb.exe: device offline' WARNING | adb command 'C:\Users\User 2\AppData\Local\platform-tools\adb.exe -s emulator-5554 shell settings put system screen_off_timeout 2147483647 ' failed: 'adb.exe: device offline' WARNING | adb command 'C:\Users\User 2\AppData\Local\platform-tools\adb.exe -s emulator-5554 shell settings put system screen_off_timeout 2147483647 ' failed: 'adb.exe: device 'emulator-5554' not found'
我现在主要有几个核心疑问想请教大家:
- 为什么只有Flutter项目会出现ADB报告模拟器offline的情况,原生Android应用却完全正常?
swiftshader_indirect这个GPU模式会不会干扰Flutter连接模拟器?- 最重要的是,我该怎么做才能让模拟器在Flutter项目中显示为online并正常使用?
我已经搜遍了各种资料并尝试了能找到的所有解决方案,但都没效果。如果需要完整日志的话我也可以提供。希望能得到大家的帮助,谢谢!
内容来源于stack exchange




