Flutter项目用ngrok遇FormatException:Tunnel aaa.com not found
代码层面排查方向
1. 常量引用与硬编码检查
- 逐行核对所有网络请求代码,确认是否全部使用了
_domain常量,有没有漏改的硬编码aaa.com(比如某段请求直接写死POST https://aaa.com/auth/login而非拼接_domain)。 - 检查是否存在多环境配置文件(如dev、prod),确认当前运行的环境配置是你修改过的版本,而非旧配置。
2. 请求库全局配置排查
- 如果你使用Dio、http等请求库,检查全局初始化的
baseUrl是否被硬编码为aaa.com,或是初始化逻辑未同步最新的_domain值(比如baseUrl在启动时仅初始化一次,后续修改常量不会自动更新)。
3. 本地存储缓存检查
- 确认是否将域名存入SharedPreferences、Hive等本地存储中,如果之前存储过
aaa.com,启动时程序优先读取本地缓存而非常量值,就会导致请求指向旧域名。可在启动阶段打印本地存储的域名值验证。
4. 请求工具类的缓存逻辑
- 若封装了自定义的网络请求工具类,检查是否存在缓存baseUrl的逻辑(比如类内部静态变量存储域名,修改常量后未更新该变量)。
5. Flutter编译缓存处理
- 修改常量后若仅用热重载/热重启,可能存在编译缓存未更新的情况,需完全停止应用后重新编译运行,确保新常量值被打入安装包。
6. ngrok相关配置核查
- 用
ngrok tunnels命令查看所有活跃隧道,确认当前运行的隧道指向xxx.com,关闭残留的aaa.com隧道。 - 检查ngrok配置文件(如
~/.ngrok2/ngrok.yml),确认没有默认域名设置为aaa.com的规则。
内容的提问来源于stack exchange,提问作者lion-react
相关产品推荐
相关产品推荐

