在 Debian 上使用 Flutter 时,热重载(Hot Reload)失效通常不是 Flutter 本身的 Bug,而是环境或运行方式导致的。下面按「最常见 → 较少见」依次说明原因和解决办法。
flutter run 但终端被阻塞 / 没有焦点热重载需要:
flutter run 正在运行✅ 正确做法:
flutter run
然后按:
r → 热重载R → 热重启❌ 错误:
nohup / &)flutter run --release
❌ release 模式 不支持热重载
✅ 使用:
flutter run
# 或
flutter run --debug
以下改动 不会热重载,必须热重启或重新运行:
main() 函数initState() 中的逻辑MaterialApp 的路由配置✅ 解决:
R(Hot Restart)flutter runDebian 默认 inotify 数量较少,Flutter 监听不到文件变化。
✅ 检查:
cat /proc/sys/fs/inotify/max_user_watches
✅ 解决:
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
以下位置 热重载容易失效:
/mnt/media✅ 建议:
~/projects/如果你在:
热重载可能完全失效。
✅ 建议:
flutter upgrade
flutter devices
确认有设备在线(模拟器 / 真机 / Linux 桌面)
请逐条确认:
flutter run(不是 --release)r你可以告诉我:
flutter doctor -v 输出(可脱敏)我可以直接告诉你具体是哪一条导致失效。