Flutter报basicLocaleListResolution重复导入导致构建失败如何解决?
问题核心
该报错由命名冲突导致:你使用的device_preview:0.5.5版本自带了basicLocaleListResolution方法,与高于2.5版本的Flutter SDK中app.dart内置的同名方法导入冲突。
解决方案
方案1:升级device_preview版本(优先推荐)
该冲突在新版device_preview中已被官方修复,直接修改项目pubspec.yaml中的依赖版本即可:
dependencies: device_preview: ^1.1.0 # 可替换为当前最新兼容版本
修改后依次执行命令:
flutter cleanflutter pub getflutter run
方案2:临时修改冲突源码(仅用于无法升级依赖的场景)
直接修改报错指向的store.dart文件(路径:/C:/src/flutter/.pub-cache/hosted/pub.dartlang.org/device_preview-0.5.5/lib/src/state/store.dart):
- 找到文件头部的两个导入语句,给其中一个加前缀区分:
import 'package:flutter/src/widgets/app.dart'; import 'package:device_preview/src/locales/locales.dart' as device_locale;
- 找到报错的第74行,给调用的方法加上对应前缀,明确调用device_preview自带的方法:
final defaultLocale = device_locale.basicLocaleListResolution(
修改后重新执行flutter run即可。
方案3:依赖隐藏处理冲突
如果你的项目不需要用到device_preview的多语言功能,可以在项目引入device_preview的位置添加hide参数屏蔽冲突方法:
import 'package:device_preview/device_preview.dart' hide basicLocaleListResolution;
内容的提问来源于stack exchange,提问作者berat berk
相关产品推荐
相关产品推荐

