Flutter报错:URI目标不存在,自定义包导入失败求助
解决Flutter中
package:导入本地文件报错的问题 你遇到的问题核心是:用package:前缀导入的资源,Dart默认会识别为Pub仓库中的独立包,而不是项目里的普通文件夹,所以直接在主项目里建packages文件夹这么用肯定会报错。下面给你两种可行的解决方式:
方式一:直接用相对路径导入(简单快速,适合单项目内部使用)
根据你的项目结构调整导入路径:
- 如果你的项目结构是这样:
那main.dart里改成:你的项目/ lib/ main.dart packages/ user_repository.dartimport '../packages/user_repository.dart'; - 如果
packages文件夹在lib目录下:
就改成:你的项目/ lib/ main.dart packages/ user_repository.dartimport 'packages/user_repository.dart';
方式二:做成本地Pub包(适合多模块复用场景)
如果这个仓库需要在多个项目或模块里复用,可以把它做成本地Pub包:
- 进入你创建的
packages文件夹,执行命令初始化标准包结构:dart create -t package user_repository - 把你写的
user_repository.dart内容移到生成的user_repository/lib/目录下(替换默认的文件也可以) - 在主项目的
pubspec.yaml里添加本地依赖:dependencies: user_repository: path: ./packages/user_repository - 执行
flutter pub get,之后就能正常用import 'package:user_repository/user_repository.dart';导入了
额外排查点
- 检查路径拼写,Flutter对路径大小写敏感(尤其是iOS/macOS环境),别写错字母大小写
- 执行
flutter pub get后重启IDE,有时候IDE缓存会导致路径识别延迟
内容的提问来源于stack exchange,提问作者user23487546
相关产品推荐
相关产品推荐

