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
相关产品推荐
相关产品推荐

