You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Flutter项目编译报错:Target of URI doesn't exist问题求助

解决Flutter项目中package:flutter_riverpod/flutter_riverpod.dart路径不存在的问题

问题背景

你在编译Flutter项目时遇到了这个报错:

Target of URI doesn't exist: 'package:flutter_riverpod/flutter_riverpod.dart'

虽然修改~/.pub-cache/hosted/下的镜像目录名称后,命令行可以正常编译,但Android Studio依然报错。你已经尝试了清IDE缓存、flutter cleanflutter pub get/upgradeflutter pub cache repair这些常规操作,但问题没解决。

你的环境信息:

  • Flutter 1.24.0-4.0.pre.165(master通道)
  • Dart 2.11.0 (build 2.11.0-266.0.dev)

解决方案

根据你的情况,问题根源是Android Studio没有识别到修改后的pub缓存路径,或者镜像源的目录命名异常导致IDE找不到依赖文件。下面是几个针对性的解决方法:

1. 修复镜像源的目录命名问题(推荐)

从报错日志看,pub缓存里的flutter_riverpod路径是../../../.pub-cache/hosted/mirrors.tuna.tsinghua.edu.cnGdart-pub/flutter_riverpod-0.5.1/lib/flutter_riverpod.dart,这里的G明显是URL中/的转义异常,大概率是你的镜像源配置格式不对导致的。

你可以重新配置正确的清华镜像源,让pub自动生成正确的目录:

# 设置清华dart pub镜像源
flutter pub config set pub-hosted-url https://mirrors.tuna.tsinghua.edu.cn/dart-pub
# 清空现有缓存
flutter pub cache clean
# 重新拉取依赖
flutter pub get

这样pub会重新下载所有依赖到命名正确的目录下,无需手动修改目录名,IDE也能自动识别。

2. 让Android Studio重新索引项目

如果已经手动修改了目录名,你可以通过重置IDE的项目配置来让它重新识别:

  • 关闭当前项目,删除项目根目录下的.idea文件夹和.dart_tool文件夹
  • 重新打开项目,等待Android Studio完成索引和依赖同步
  • 执行flutter pub get,再点击IDE右上角的「Sync Project with Gradle Files」按钮

3. 手动指定Pub缓存路径到IDE

如果IDE还是找不到缓存目录,可以手动指定:

  1. 打开Android Studio,进入File > Settings > Languages & Frameworks > Dart
  2. 确认Dart SDK path指向正确的路径(一般是你的Flutter SDK目录下的bin/cache/dart-sdk
  3. Pub Cache Directory中,手动输入你的pub-cache完整路径(比如/Users/你的用户名/.pub-cache
  4. 点击「Apply」和「OK」,重启Android Studio后再执行flutter pub get

4. 验证依赖是否正确安装

执行以下命令确认flutter_riverpod已正确安装:

flutter pub deps | grep flutter_riverpod

如果输出显示类似flutter_riverpod 0.5.1的内容,说明依赖已经安装到位,只需要让IDE重新识别即可。

总结

优先通过修复镜像源配置来解决目录命名的根本问题,这样既能保证命令行编译正常,也能让Android Studio自动识别依赖。如果手动修改了缓存目录,重置IDE项目配置或手动指定缓存路径也能解决问题。

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

火山引擎 最新活动