You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter Web应用启动卡顿求助:ChromeProxyService相关错误

解决思路
  • 排查初始化逻辑的阻塞问题
    检查main函数或启动阶段的代码,看是否有同步执行的异步操作(比如用await直接阻塞main流程)。这类操作会干扰Flutter引擎的预热过程。尝试把非必要的初始化逻辑(比如接口请求、资源预加载)移到runApp()之后,用WidgetsBinding.instance.addPostFrameCallback或者Future.delayed延迟执行,避免阻塞引擎启动。

  • 禁用调试阶段的表达式求值
    启动命令添加--disable-expression-evaluation参数,跳过ChromeProxyService的表达式求值步骤,直接规避这个错误。Web-server模式的命令改为:

    flutter run -d web-server --disable-expression-evaluation
    
  • 排查依赖包兼容性
    逐个排查pubspec.yaml中的第三方依赖,尤其是和Web初始化、引擎交互相关的插件。临时注释掉非核心依赖,重新运行应用,定位是否是某个依赖包导致的冲突。找到问题包后,尝试更新到最新版本或替换为替代包。

  • 切换Web渲染模式
    Flutter Web支持html、canvaskit两种渲染模式,默认是auto。分别用以下命令启动测试:

    flutter run --web-renderer html
    flutter run --web-renderer canvaskit
    

    如果其中一种模式下卡顿和报错消失,说明问题和当前渲染模式的引擎逻辑有关,可以针对性调整(比如canvaskit模式下检查字体、图片等资源的加载是否阻塞)。

  • 排除浏览器扩展干扰
    用Chrome/Brave的隐身模式打开页面,排除广告拦截器、开发者工具插件等浏览器扩展的干扰。如果隐身模式下正常,逐个禁用扩展找到冲突的插件。

  • 手动触发引擎预热
    在main函数开头同步调用ui.webOnlyWarmupEngine(),确保引擎预热在异步上下文之外执行。示例代码:

    import 'dart:ui' as ui;
    
    void main() {
      ui.webOnlyWarmupEngine();
      runApp(MyApp());
    }
    

    注意不要将这个方法放在async函数中执行,必须保持同步调用。

内容的提问来源于stack exchange,提问作者sosnus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 08:05:29