flutter 踩坑总结
导入第三方库踩坑小结:
(编译器:VsCode)
( 打算在学习中,使用flutter重新自己的项目,遇到比较特殊的坑,就先记录一下,持续更新中)
1.把第三方库 写入pubspec.yaml文件中
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.
english_words: ^3.1. dev_dependencies:
flutter_test:
sdk: flutter
2.在底部终端 运行:
flutter packages get
或点击右上角的 Get Packages 按钮
运行结果:
Running "flutter packages get" in lwflutterapp... .6s
3.之后 在main.dart 文件中 导入
import 'package:english_words/english_words.dart';
发现报错,如图:
原因: 依赖库没有成功导入,可以看一下刚才上面的导入时间只有0.6s,一般不会这么快,
坑1.:把第三方库的名字写入文件后,忘记保存,直接运行了 flutter packages get,
坑2:当保存之后,再次加载第三方库,发现会一直卡在这个地方,等半天也没有结束

原因: storage.googleapis.com 撞墙了,
解决方式:
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:执行一下flutter doctor -v命令。(可有可无) 3:然后再执行flutter packages get
坑3:当你配置完环境变量之后,再次运行 flutter packages get的时候发现,flutter的文件是被锁状态,因为有一个任务一直未完成状态,就是刚才卡死的那个任务,
终端显示:
Waiting for another flutter command to release the startup lock...
解决方法,如下:
1、打开flutter的安装目录/bin/cache/ ( /usr/local/flutter/bin/cache)
2、删除lockfile文件
3、重启vsCode
(补充: 如果还不行,请先检查安装的flutter目录下./flutter/bin/cache/路径下是否已经有个lockfile文件存在了,因为我使用的是vscode下面的终端窗口,有时即使线程被占用了,但是不会像电脑终端一样会有提示信息,被坑过!)
然后就可以 正常的导入第三方了(需要几分钟的时间),导入的头文件也不会再保存了,
坑4:真机运行时:报错 Error connecting to the service protocol: HttpException: , uri = http://127.0.0.1:1024/ws
网上有人说:这种情况,一般是调试iOS真机的情况会出现,打开Xcode->Window->Devices and Simulators,将Connect via network取消
但是我的本来就是取消状态,所有对我无效,
我杀死进程后,就运行成功了,
坑5:数据转模型对象
刚开始使用的是网上说的 第三方框架 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),
持续踩坑中。。。
flutter 踩坑总结的更多相关文章
- Flutter踩坑日记:Tab导航栏保持子页面状态
最近应邀票圈小伙伴躺坑Flutter,项目初步雏形完结.以原来的工具链版本为基础做了Flutter版本,不过后面还是需要优化下项目接入Redux,以及扩展一些Native方法. 这里记录一下在开发过程 ...
- Flutter 踩坑之build函数返回了null
今天遇到一个bug,内容都正常显示没问题,但是控制台里报错,如图: 翻译了下,说是函数不能返回空值,搜索了下,网上相同问题的是少写了个return,我检查了下也没发现少return的,后来突然发现if ...
- Flutter踩坑日记:解除依赖
Flutter已经融入工程有一段时间了,由于团队人数较少,所以一直没有管和原有工程解依赖的问题,今天有时间正好把这个问题给搞了. 一.分析 首先,直接忽略上一篇<接入现有iOS项目>的所有 ...
- Flutter踩坑日记:接入现有iOS项目
之前搞的Flutter版工具链已经弄完了,感兴趣的朋友可以围观下,Android版本dio库(v2.0.14)发送网络请求老是报错,去官方提了issue还没回,于是今天搞一下把Flutter模块接入到 ...
- Mac 安装flutter 踩坑记
完整版请看链接: http://b36d5043.wiz03.com/share/s/2Prl132RpQ3x2XpA4I2oTa2204K0FF0vB4J42tWIEQ04UrAg 首先下载flut ...
- Flutter 踩坑集
1.Flutter Packages Get 一直重试或一直失败的问题 翻车原因:万恶之源-----天朝的长城防火墙 解决方法 详见:https://flutter.dev/community/chi ...
- flutter 踩坑小计: amap_base 地图缩放 zoom 设置无效的问题
这种问题估计也就我这种菜鸡能遇到了,因为我问了一些大佬,他们完全没遇到这类的问题. 如果你也遇到了,希望这篇文章能帮到你,倘若还不能解决你的问题,可以留言,我们共同研究. 问题:同样的插件,为什么偏偏 ...
- flutter踩坑小记:The number of method references in a .dex file cannot exceed 64K.
The number of method references in a .dex file cannot exceed 64K. 这句话的意思翻译出来是:.dex文件中的方法引用数不能超过64K. ...
- Spark踩坑记——Spark Streaming+Kafka
[TOC] 前言 在WeTest舆情项目中,需要对每天千万级的游戏评论信息进行词频统计,在生产者一端,我们将数据按照每天的拉取时间存入了Kafka当中,而在消费者一端,我们利用了spark strea ...
随机推荐
- SQL数据库操作整理
1.规范 ①关键字与函数名称全部大写: ②数据库名称.表名称.字段名称全部小写: ③SQL语句必须以分号结尾. 2.数据库操作 // 1. 创建数据库,其中[]表示可以省略 CREATE { DATA ...
- CF 980D Perfect Groups(数论)
CF 980D Perfect Groups(数论) 一个数组a的子序列划分仅当这样是合法的:每个划分中的任意两个数乘积是完全平方数.定义a的权值为a的最小子序列划分个数.现在给出一个数组b,问权值为 ...
- 通过jQuery实现AJAX
通过jQuery实现AJAX > 使用get和getJSON都会有缓存问题,并且使用get方法不能传送较多的数据. 问题: 在IE浏览器中,get请求使用ajax存在缓存问题,会使用上一次请求的 ...
- 多线程中wait、notify理解
实在惭愧,java开发多年,多线程运用一直不多,该知识点理解也不够,不怎么会用.赶上使用多线程 生产者.消费者模式,学习下该知识点. synchronized 获取锁 wait 阻塞本线程,释放对象 ...
- 移动web 的viewport设置注意事项的详细解释 六一快乐=-_-_
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 在谷歌地图上绘制行政区域轮廓【结合高德地图的API】
实现思路: 1.利用高德地图行政区域API获得坐标列表 2.将坐标列表绘制在谷歌地图上[因为高德地图和国内的谷歌地图都是采用GCJ02坐标系,所有误差很小,可以不进行坐标误差转换] 注意点: 1.用百 ...
- Eclipse进行Java web开发时,可能会出现这样的错误:The superclass javax.servlet.http.HttpServlet was not found on the Java Build Path
我们遇到的错误显示如下: 我们右击有错误提示的文件夹,如下: 我们点击”配置构建路径“,如下: 我们再点击”添加库“,如下: 我们选中上图中标出的选项,再点击下一步,如下: 我们再 ...
- 原生Ajax实现
发现一件可怕的事情,前端学不完了,春招要开始了.唉,人生苦短.
- HTTP的学习记录(二)头部
本文主要讲一些 HTTP头部的信息 首先看一段 惊为天人 的文章. 来自于 <淘宝技术这十年> 你发现快要过年了,于是想给你的女朋友买一件毛衣,你打开了www.taobao.com.这时你 ...
- C# Repeater 嵌套
<table class="table table-bordered table-fixed"> <thead> <tr> <th wid ...