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

如何解决Flutter 3.29.0中Synthetic package output (package:flutter_gen)废弃警告?

Flutter 3.29.0/Dart 3.7.0 flutter_gen废弃警告解决方案

问题概述

升级至Flutter 3.29.0和Dart 3.7.0后,运行Android/iOS应用时控制台出现以下警告:

Synthetic package output (package:flutter_gen) is deprecated: https://flutter.dev/to/flutter-gen-deprecation.
In a future release, synthetic-package will default to false and will later be removed entirely.

当前pubspec.yaml相关配置:

flutter:
  generate: true

已执行操作:

  • 运行flutter clean和flutter pub get
  • 升级所有依赖至最新版本
  • 确认项目中无flutter_gen.yaml文件

解答

1. 消除警告的正确操作

需要切换到非合成包模式,步骤如下:

  1. 创建flutter_gen.yaml配置文件并禁用合成包
  2. 修改项目中所有package:flutter_gen/...的导入路径,改为直接引用生成的本地文件
  3. 重新执行flutter clean + flutter pub get,再重新构建项目

2. flutter_gen.yaml的创建与配置

需要手动创建该文件,放置在项目根目录(与pubspec.yaml同级),内容如下:

synthetic-package: false

3. 官方迁移路径

官方明确了迁移流程,核心包括:

  • 保持pubspec.yaml中flutter.generate: true的配置
  • 添加上述flutter_gen.yaml并设置synthetic-package: false
  • 替换所有导入语句:例如将import 'package:flutter_gen/gen_l10n/app_localizations.dart';改为import 'gen_l10n/app_localizations.dart';(具体路径根据生成文件的实际位置调整)
  • 确保项目依赖的第三方包也完成了对应迁移,避免间接触发警告

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 04:17:35