Flutter本地包修改后热重载/热重启不生效问题求助
解决Flutter本地包修改后热重载/热重启不生效的问题
检查本地包的依赖声明方式
确保主项目pubspec.yaml中用路径依赖而非版本号依赖——版本号依赖会优先读取缓存或仓库包,不会监听本地修改。正确写法:
dependencies: your_local_package: path: ../path/to/your_local_package
改完后执行flutter pub get刷新依赖。
核对本地包的基础配置
- 确认本地包
pubspec.yaml的name字段和主项目依赖里的包名完全一致,大小写、拼写不能出错。 - 检查本地包是否存在特殊配置(比如错误的
publish_to设置)导致缓存冲突。
彻底清除缓存(比flutter clean更深入)
- 执行
flutter clean - 删除主项目和本地包下的
.dart_tool、build文件夹 - 执行
flutter pub get重新拉取依赖 - 重启IDE(缓存可能驻留在IDE进程中,单纯重启应用没用)
确认代码变更类型适配热重载
- 热重载仅对Dart代码变更生效,若修改了本地包的原生代码(Android Kotlin/Java、iOS Swift/OC),必须冷重启(停止应用后重新
flutter run)。 - 若修改的是根组件、全局初始化逻辑这类代码,热重载也无法生效,需冷重启。
检查IDE调试配置
如果用VS Code的launch.json,确保没有禁用热重载的参数:
{ "configurations": [ { "name": "Flutter", "request": "launch", "type": "dart", // 删掉类似 "--no-hot-reload" 的禁用参数 } ] }
Android Studio用户可检查是否开启了旧版的"Instant Run",并确保Flutter插件为最新版本。
验证本地包代码的实际引用
在主项目使用本地包的代码处,按住Ctrl/Command点击导入路径,确认跳转至本地包的文件,而非缓存或仓库中的同名包。
用verbose模式排查依赖加载
执行flutter run -v,在日志中搜索本地包名称,查看是否有类似以下的加载日志:
[ +1 ms] Found plugin your_local_package at ../path/to/your_local_package/
若没有这类日志,说明依赖未正确加载,需重新检查pubspec.yaml的路径配置。
内容的提问来源于stack exchange,提问作者Ujith Isura
相关产品推荐
相关产品推荐

