本篇主要讲述Mac环境下的配置,其他操作系统的用户可相应参考。
问题描述
为项目添加新的依赖包,一直卡flutter pub get / flutter packages get
未能往下执行。怀疑是由于默认镜像在国外导致,于是按照官网修改镜像教程将镜像修改为国内镜像,并重新执行命令安装;结果问题照样出现。
试过切换几个国内镜像,依旧会出现卡在flutter packages get
的情况;网络正常,镜像正常,环境正常,就是不行。
发现原因
折腾再三,决定手动下载插件直接放本地使用,却发现怎么样都找不到本地默认的插件目录…… 各种找资料找不到,最后还是靠IDE定位发现了。
这里就直接po出flutter插件默认本地路径:
flutter的SDK目录/.pub-cache/hosted/当前使用的镜像地址文件夹/
参考示例:
/usr/local/flutter1.5.4/.pub-cache/hosted/pub.flutter-io.cn/
#在`hosted`文件夹下,可以发现几个以flutter镜像域名命名的文件夹
./hosted
.../dart-pub.mirrors.sjtug.sjtu.edu.cn%47/
.../pub.dartlang.org/
.../pub.flutter-io.cn/
可见下载的依赖包都是按不同镜像分目录存放,所以每切一回镜像,都需要重新下载所有项目的依赖插件;因为加载的插件较多,也就导致等待时间非常久,这也是切换了几个国内镜像依旧卡flutter packages get
很久的原因。
解决问题
知道问题原因也就好解决了:
第一步,继续使用国内正常可用的镜像:
# 官方提供的国内镜像
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
# 上海交通大学提供的国内镜像
export FLUTTER_STORAGE_BASE_URL=https://mirrors.sjtug.sjtu.edu.cn/
expot PUB_HOSTED_URL=https://dart-pub.mirrors.sjtug.sjtu.edu.cn/
第二步,按需选择操作步骤:
- 耐心等待下载(若下载的插件数量非常多,等待的耗时会比较长)
- 将其他镜像文件夹下已下载的插件文件,拷贝到当前使用的镜像的目录下,并执行
flutter packages get
(避免有遗漏的插件) - 手动到插件的github下载文件,放到当前使用的镜像目录下
第三步,愉快地执行flutter run
。
第四步,给本文作者点个小小的赞,施主的bug和坑可少大半~(手动狗脸.jpg)