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

Flutter包升级Flutter3.10/Dart3.0后执行flutter pub get遇main函数错误

修复Flutter包在Dart3/Flutter3.10下的"main函数缺失"报错问题
  • 检查pubspec.yaml配置
    确认是否误将包标记为可执行程序:查看pubspec里是否存在executables字段,若有直接删除或注释——这个字段用于声明可执行Dart程序,会触发系统寻找main函数,而Flutter库包完全不需要该配置。
    同时确保environment字段正确指定版本范围,示例:

    environment:
      sdk: '>=3.0.0 <4.0.0'
      flutter: '>=3.10.0'
    
  • 排查测试/示例目录的问题
    若包包含example或test目录,检查这些目录下的dart文件是否被错误识别为可执行入口:比如example中的main.dart需保持正常Flutter项目结构,避免其他dart文件被设置为可执行权限,或者在pubspec中被关联为可执行文件。
    另外,测试代码务必使用flutter test命令运行,不要直接用dart run,否则会触发main函数检查。

  • 清理缓存并重新构建
    执行以下命令彻底清理旧配置缓存,避免残留问题:

    flutter clean
    rm -rf .dart_tool
    flutter pub get
    

    本地验证pub.dev兼容性时,可使用flutter pub publish --dry-run模拟发布检查,确认报错是否消失。

  • 规范包的文件结构
    确保包的核心代码全部放在lib/目录下,根目录不要存放dart文件(pubspec.yaml、README.md等配置文档除外)。Dart3的新规则会将根目录的dart文件默认判定为可执行程序,进而要求必须包含main函数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 10:32:12