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

Flutter使用auto_route运行build_runner报错Constructors can't have a return type如何解决

问题原因

报错的核心是@MaterialAutoRouter注解里的replaceInRouteName参数格式错误:
你当前写的是replaceInRouteName: 'Page, Route',逗号后面多了一个多余的空格,auto_route生成代码时会把HomePage里的Page后缀替换为 Route(带前置空格的Route字符串),最终生成非法的类名Home Route,类名中间的空格导致生成的.gr.dart文件语法完全失效,触发你看到的各类语法解析错误。

解决方法

把replaceInRouteName参数里逗号后面的空格删掉,修改为:

@MaterialAutoRouter(
  replaceInRouteName: 'Page,Route',
  // 其余配置保持不变
  routes: <AutoRoute>[
    RedirectRoute(path: '/home-page', redirectTo: '/'),
    CustomRoute(
      page: HomePage,
      initial: true,
      customRouteBuilder: sharedAxisZTransitionRouteBuilder,
    ),
  ],
)

修改后重新执行构建命令即可:

flutter pub run build_runner build --delete-conflicting-outputs

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 10:36:03