( 打算在学习中,使用flutter从新本身的项目,遇到比较特殊的坑,就先记录一下,持续更新中)git
1.把第三方库 写入pubspec.yaml文件中github
dependencies: flutter: sdk: flutter # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. cupertino_icons: ^0.1.2 english_words: ^3.1.0 dev_dependencies: flutter_test: sdk: flutter
2.在底部终端 运行:json
flutter packages get
或点击右上角的 Get Packages 按钮api
运行结果:app
Running "flutter packages get" in lwflutterapp... 0.6s
3.以后 在main.dart 文件中 导入框架
import 'package:english_words/english_words.dart';
发现报错,如图:工具
缘由: 依赖库没有成功导入,能够看一下刚才上面的导入时间只有0.6s,通常不会这么快,学习
缘由: storage.googleapis.com 撞墙了,google
解决方式:spa
1:配置一下环境变量 Linux 或 Mac: export PUB_HOSTED_URL=https://pub.flutter-io.cn export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn Windows: PUB_HOSTED_URL ===== https://pub.flutter-io.cn FLUTTER_STORAGE_BASE_URL ===== https://storage.flutter-io.cn
2:执行一下 命令。(无关紧要)
3:而后再执行
flutter doctor -vflutter packages get
flutter packages get的时候发现,flutter的文件是被锁状态,由于有一个任务一直未完成状态,就是刚才卡死的那个任务,
终端显示:
Waiting for another flutter command to release the startup lock...
解决方法,以下:
一、打开flutter的安装目录/bin/cache/ ( /usr/local/flutter/bin/cache)
二、删除lockfile文件
三、重启vsCode
(补充: 若是还不行,请先检查安装的flutter目录下./flutter/bin/cache/路径下是否已经有个lockfile文件存在了,由于我使用的是vscode下面的终端窗口,有时即便线程被占用了,可是不会像电脑终端同样会有提示信息,被坑过!)
而后就能够 正常的导入第三方了(须要几分钟的时间),导入的头文件也不会再保存了,
网上有人说:这种状况,通常是调试iOS真机的状况会出现,打开Xcode->Window->Devices and Simulators,将Connect via network取消
可是个人原本就是取消状态,全部对我无效,
我杀死进程后,就运行成功了,
刚开始使用的是网上说的 第三方框架 json_annotation: ^2.0.0,这个框架会自动生成一个与model.dart文件对应的model.g.dart文件,可是比较蛋疼的就是model类的属性,你须要一个一个的手写,若是少了还行,多了就很蛋疼了。全部弃用了,
因为vscode的插件比较少,全部我使用在线工具 https://javiercbk.github.io/json_to_dart/,这个在线工具就能够根据json,自动生成一套转模型的代码,只须要改一下类名就好了,可是。。还有坑。因为 自动生成的代码里,在赋值那一块没有对类型就行强转,就形成了 int和double的混乱,常常会报 int 和 double之间的类型错误。这是就须要根据数据的实际状况手动添增强转 代码(as int 或 as double),