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

Flutter AutoRoute执行build runner报Route must have either a page or a redirect destination错误

错误触发原因
  • 核心原因是auto_router在解析路由配置时,判定某一条AutoRoute既没有配置合法的page参数,也没有配置redirect跳转目标,触发了语法校验报错。结合你提供的代码,具体可能的诱因有3种:
    • 你配置的4个路由对应的页面类(SplashPage、SignInPage、NoteOverviewPage、TodoFormPage)没有添加@RoutePage()注解,auto_router无法识别这些类为合法的路由页面,判定page参数无效。
    • 页面类导入路径错误,或者导入了其他同名非页面类,导致page参数指向的类不生效。
    • 你配置的todoFormRouter的name属性为小驼峰格式,不符合auto_router要求的大驼峰命名规范,部分版本会触发路由解析异常,判定配置不合法。
修复方案
  1. 给所有路由对应的页面类顶部添加@RoutePage()注解,示例如下:
import 'package:auto_route/auto_route.dart';

// 每个Page类都要加该注解
@RoutePage()
class TodoFormPage extends StatelessWidget {
  // 原有页面逻辑不变
}
  1. 检查所有page参数对应的页面类导入路径,确认没有导入错误。
  2. 修正todoFormRouter的命名为大驼峰格式:
AutoRoute(
  path: 'todoFormPage',
  name: 'TodoFormRouter', // 首字母大写,改为大驼峰
  page: TodoFormPage,
),
  1. 清理构建缓存后重新执行编译命令:
# 清理旧的构建产物
flutter packages pub run build_runner clean
# 重新生成路由代码
flutter packages pub run build_runner build --delete-conflicting-outputs

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 17:24:03