Flutter重启后出现文件无法归属多库错误,求解决方案
解决Flutter中"A file can't be part of more than one library"编译错误
错误原因
从报错信息来看,firebase_core-2.3.0包的缓存目录里存在两个重复的主文件:firebase_core.dart和firebase_core.dart%20(后者是带空格的文件名转义形式),这导致同一源文件被多个library引用,触发编译错误,大概率是自动更新包时缓存写入异常导致的。
修复步骤
彻底清理Flutter pub缓存
在终端执行命令:flutter pub cache clean该命令会清空整个pub缓存目录,清除残留的异常文件。
手动删除异常包目录(可选但推荐)
若缓存清理后问题仍存在,手动定位并删除报错中的包目录:C:/src/flutter_windows_2.10.4-stable/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_core-2.3.0确保整个
firebase_core-2.3.0文件夹被完全删除。重新安装项目依赖
回到Flutter项目根目录,执行:flutter pub get重新下载并安装所有依赖包,包括正常版本的
firebase_core。额外排查(若以上步骤无效)
- 打开项目根目录的
pubspec.lock文件,删除所有关于firebase_core的条目后,再次执行flutter pub get - 确认Flutter SDK 2.10.4与
firebase_core-2.3.0的兼容性,可尝试在pubspec.yaml中指定更低版本的firebase_core(比如firebase_core: ^2.0.0),再执行flutter pub get
- 打开项目根目录的
内容的提问来源于stack exchange,提问作者Unique Peoples.
相关产品推荐
相关产品推荐

