Flutter-引入第三方依赖包
flutter.jpg
实际开发中引入第三方的功能模块极为常见,也就是别人写好的、封装好的实现特定功能的操作,这里称之为“包”,也可称为“库”。几乎每个平台都有管理第三方库的功能,比如iOS用Cocoapods或Carthage来管理依赖,Node中通过npm , php使用Composer等。
Flutter中对第三方依赖的管理通过配置文件pubspec.yaml来实现的;该文件位于项目根目录下;
2-.png
我们用到的第三方写在这里:
dependencies:
flutter:
sdk: flutter
dio: ^3.0.0
cupertino_icons: ^0.1.3
比如我添加了dio网络请求的库,如上形式;具体操作如下;
1、找到我们需要的包在代码库中的名称及所需的版本号:
所有的第三方都有个仓库来保存这些东西,我们使用就得先把它找出来,这个仓库就在这里【https://pub.flutter-io.cn】,国内站点访问;常用的第三方功能都能在这找到。
pub_dev.png
比如,搜dio;
3dio.png
第一个就是我们所需的包,直接如上图1设置即可;OK,这只是开始,然后执行
flutter pub get
get.png
获取代码到本地,也就是从远程仓库下载到本地,才能正常使用。
2、获取第三方包
直接如图3在Androidstudio中操作,不出意外的报错了;
Running "flutter pub get" in dctt_flutter...
终端一直提示这种状态,等了好久报错超时,无法连接“pub.dartlang.org/”,这是境外的,网络被墙了无法访问;
明明在系统变量里配置了访问的国内镜像呢;
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
export PATH=/Users/uu/Desktop/flutter/sdk/bin:$PATH
在工具中却不起作用;此路不通,试试命令行操作;
MacBook-Pro dctt_flutter % flutter pub get
Waiting for another flutter command to release the startup lock...
还是报错了,上次操作未完成被锁住了,这个好处理;只要进入flutter sdk 目录,然后找到bin/cache/lockfile文件,删除后再运行命令,错误没了。
common.png
命令执行完成,此时包应该下载到本地了;pubspec.lock 文件中可以看到有包的信息;
代码中输入dio:如下有反应了,这说明包引入成功了!_!
dio2.png
3、下载的第三方包的位置
下载的代码包去哪里了,我们的项目中没有看到呀!不像iOS的那样,直接项目工程下就看到下载的代码;
顺着提示路径我们找到了这里:
path.png
居然在我们的Flutter SDK 中缓存目录里,
dio3.png
里面两个目录对应两个镜像地址,里面的包就是我们远程下载的,然后项目中直接使用,打包时直接链接进来了;
终于知道包怎么回事了,下面就可以在项目中愉快的使用了,不知道怎么用?不知道有什么功能?都没关系,直接去文档描述及示例,用了几次自然就熟悉了。
喜欢我就关注我吧,有任何问题欢迎指导,十分感谢!
- 安装Ubuntu时分区选择
- linux系统下安装两个或多个tomcat
- JS魔法堂:不完全国际化&本地化手册 之 实战篇
- scala + intellij idea 环境搭建及编译、打包
- Angular企业级开发(2)-搭建Angular开发环境
- JS魔法堂:不完全国际化&本地化手册 之 拓展篇
- 使用jQuery的animate方法制作滑动菜单
- jenkins 入门教程(下)
- CSS3制作心形头像
- CSS魔法堂:重拾Border之——不仅仅是圆角
- scala 学习笔记(01) 函数定义、分支、循环、异常处理、递归
- java之log4j的配置
- scala 学习笔记(02) 元组Tuple、数组Array、Map、文件读写、网页抓取示例
- scala 学习笔记(04) OOP(上)主从构造器/私有属性/伴生对象(单例静态类)/apply方法/嵌套类
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- PHP命令执行学习总结
- win10 专业版 提示开机提示你的windows许可证即将过期
- 浅谈文件上传漏洞(其他方式绕过总结)
- 《sql必知必会》——读书笔记(1)
- JDK15已发布,网友:我还在JDK8踏步走...
- 树莓派基础实验15:电位器传感器实验
- java JDBC数据库连接池技术(Druid ,c3p0)
- Fail to start qos server: dubbo version: current host: java.net.BindException:
- JAVA JDBC Template的使用
- 《sql必知必会》——读书笔记(2)
- 2.通过QOpenGLWidget绘制三角形
- 树莓派基础实验16:霍尔传感器实验
- 1.opengl绘制三角形
- dubbo本地直连调试注意点
- Tomcat的使用及服务器的一些基础知识