使用Function12将Figma转Flutter代码时遇AssetManifest导入冲突
解决Flutter中'AssetManifest'重复导入冲突问题
问题本质
这是google_fonts包与Flutter SDK版本不兼容导致的命名冲突问题,属于普遍存在的依赖兼容场景,并非你的业务代码直接引发的问题。Function12生成的代码可能引入了存在冲突的google_fonts版本,从而触发该错误。
可行解决方案
1. 锁定google_fonts到无冲突版本
在项目的pubspec.yaml文件中,将google_fonts的版本指定为^4.0.4(该版本及之后修复了AssetManifest的命名冲突):
dependencies: flutter: sdk: flutter google_fonts: ^4.0.4 # 其他依赖...
执行命令更新依赖:
flutter pub get
2. 修改google_fonts内部导入逻辑(临时方案)
找到项目依赖中的google_fonts/src/google_fonts_base.dart文件,调整导入语句以避免冲突:
// 替换原有导入 import 'package:flutter/src/services/asset_manifest.dart' hide AssetManifest; import 'package:google_fonts/src/asset_manifest.dart';
这样会隐藏Flutter SDK中的AssetManifest,只使用google_fonts包内的同名类,解决实例化时的冲突。
3. 升级Flutter SDK到最新稳定版
部分旧版Flutter SDK的AssetManifest类暴露在公共导入路径中,升级到最新稳定版可从根源避免此类命名冲突:
flutter upgrade
常见问题说明
- 这是普遍问题:不少开发者在使用旧版
google_fonts与特定Flutter版本组合时都遇到过该冲突,属于依赖版本兼容问题。 - 你的业务代码无问题:报错信息指向
google_fonts_base.dart而非你编写的代码,冲突来自依赖包内部。
内容的提问来源于stack exchange,提问作者Feriel
相关产品推荐
相关产品推荐

