Flutter环境搭建踩坑集锦

Flutter

  • 背景
  • 准备工作
  • 先检查一下自己的电脑,看一下是不是满足配置要求
  • 下载安装配置环境
    • 下载安装JDK
    • 下载安装Android studio
    • 下载Flutter
    • flutter doctor故障
      • Android license status unknown
      • Network resources 故障
    • 后记

背景

发现一个不错的框架Flutter,听说一套代码就搞定Android和ios,感觉很牛逼,就来试试看,搭环境却不是那么容易,主要还是自己没搞过移动开发吧,踩了一些坑,然后记录一下,相信我遇到的问题别人也会遇到吧,而且不知道多久以后可能还会用上是不是,我可不想踩过的坑再来查一遍资料,自己整理一份吧。

准备工作

第一步当然是找一下Flutter官方文档,直接点击链接到window的安装指导,其他平台可以顺路自己找一下。

先检查一下自己的电脑,看一下是不是满足配置要求

这里按照官方文档基本没有什么问题,多数人肯定是满足要求的了,但是有一个坑让我换了台电脑搞,这里没有提示到的,那就是这个玩意居然多A卡的电脑支持有问题,主要影响是在最后生成虚拟机调试的时候,会有一些型号的手机无法模拟,也就是你有一个残缺的devicemanager,what**?搞到这里跟我说这个,虽然开发不受影响,而且可能还有其他解决方案可以解决这个问题,但是byebye,换个卡能解决的事情,而且又不是我主业,我就不研究了,这里留一下,给有缘人想办法解决吧,如果你的电脑是A卡的显卡,那么你可能就先不要尝试了,先看看有没有办法解决我说的手机模拟器的问题吧

下载安装配置环境

这里我们需要下载Flutter,Android SDK和JDK配置环境,这个下载没有先后顺序,自行操作.个人推荐的顺序是JDK,Android,Flutter

下载安装JDK

我个人是比较推荐先安装jdk的,不为别的,这套东西本身是有依赖关系的,按照依赖关系从底层建设是我的习惯。
JDK版本很多首页一般只有几个版本,也不是最新的,应该是使用最多的吧,我这里就贴一下下载列表的,想要哪个版本自己取JDK下载列表
然后就是常规操作,把Java bin加入环境变量,自己新建一个
JAVA_HOME的环境变量,值就是C:\Program Files\Java\jdk-1.8,我的是18版本的,所以是这个,自己根据安装路径和版本自己修改就可以了。

下载安装Android studio

直接去官网下载。Android官网
安装过程我就不细贴了,很多地方都有,这里写几点注意,第一遇到勾选virtual device的时候要勾选,后面下载要选择安装 Android SDK, Android SDK Platform-Tools 以及 Android SDK Build-Tools,至于版本,也是按自己的需要选择,然后有个坑是Android SDK Command-line tools没有安装,Flutter官网没有说要安装这个,而且默认好像是不安装,这个时候就需要自己手动安装一下,而且安装版本也是有讲究的,如果版本不对也会导致后面检测的时候运行失败,我就是安装的8.0的版本的

下载Flutter

直接点击官方教程上面的下载链接,一般是最新版本,由于Flutter比较新,更新比较快,有些时候可能会出现前后版本兼容没那么好的问题,所有下载之前最好还是留意一些你需要的版本,如果你是新手来学习的,就是直接下载最新版本就好了
安装也直接按官方操作皆可以了,注意事项官方文档也写的很清楚。其中提到Dart SDK是可以单独下载安装的,我自己没有单独下载,也不建议谁单独下载,毕竟都可以一步到位了,估计这里是留给老用户的。
如果你是先安装的Flutter再安装JDK和Android,安装完成之后不要急着运行Flutter doctor,虽然这个命令多运行几次也没事,但是明知环境没有配置好还是先不要运行的好,这个命令跑一遍还是要时间的,然后报一些莫名其妙的问题你不是脑壳疼?

flutter doctor故障

Android license status unknown

这个故障有很多解决方案,也就是说有很多不同的问题。这里先贴我的解决方法,然后补充别人遇到的问题和解决方案。
我的机器使用flutter doctor --android-licenses之和出现的结果是Android SDK tools没有,下载这个tools需要把Hide obsolete Packages勾选掉
在这里插入图片描述
然后flutter doctor --android-licenses,一直选择y就可以了,其他的问题大概也是根据flutter doctor --android-licenses这个指令的提示去解决的
别人的方案:
在这里插入图片描述

Network resources 故障

也就是flutter doctor最后一项出故障了
一般有两个故障,一个是git的,一个是marven的
我个人经验来看,一般只有一个,那就是marven的更新,因为是使用google的资源所以国内的大部分都报这个,换一下资源地址就好了

  • 1打开flutter根目录
  • 2打开文件 packages/flutter_tools/lib/src/http_host_validator.dart
  • 3修改其中 kMaven(修改为http://maven.aliyun.com/nexus/content/groups/public/)
  • 4删除 bin/cache(这里如果不放心可以备份,失败了重新拷回来没有问题)
  • 5重新执行 flutter doctor
    这个过程需要下载marven资源会需要一点时间,基本网速快也花不了多久
    另一个问题是git故障,这个别人是咋回事我不知道,我这里是因为我自己科学上网导致的,科学上网关了就好了,如果你不是这个原因,那可以试试下面的方法。
    git config --global http.proxy http://127.0.0.1:7890
    git config --global https.proxy http://127.0.0.1:7890
    这个我不太建议使用,即使是你先报了这个,最好也先试试上面改marven的方法,如果哪个改了还有git的问题,再试不迟,当然,你改了也没事,毕竟设置gitconfig的代理这个,并不会造成太大的影响,加上可以随时改。

后记

环境踩坑也就到这里了,欢迎评论区留言分享自己的坑点,大家共勉。最后flutter官网不仅用于安装教程,后面很多可以学习的东西也别浪费了,入门学习相当不错,白白了各位。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/15595.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

线程同步问题——锁

文章目录 线程同步互斥锁(互斥量)相关操作函数应用 死锁读写锁相关操作函数 线程同步 临界区——代码 临界数据——共享数据 原子操作:不可以被其他操作打断 必须的,用以保证数据的安全性 实现线程同步的方式: 互斥量…

什么是 DNS ANAME 解析?

本人使用谷歌搜索了简中互联网,完全没有找到任何有关 ANAME 的文章……本文该不会是头一份吧 相信大家对于 DNS 的解析方式都不陌生,常见的有 A、CNAME、MX、TXT 记录等等。其中,网站常用的是 A 记录和 CNAME 记录:A 记录用于将域…

【Django学习】(十六)session_token认证过程与区别_响应定制

一、认识session与token 这里就直接引用别人的文章,不做过多说明 网络应用中session和token本质是一样的吗,有什么区别? - 知乎 二、token响应定制 在全局配置表中配置 DEFAULT_AUTHENTICATION_CLASSES: [# 指定jwt Token认证rest_framew…

记一次安装nvm切换node.js版本实例详解

最后效果如下: 背景:由于我以前安装过node.js,后续想安装nvm将node.js管理起来。 问题:nvm-use命令行运行成功,但是nvm-list显示并没有成功。 原因:因为安装过node.js,所以原先的node.js不收n…

Android复习(Android基础-四大组件)—— Activity

Activity作为四大组件之首,是使用最为频繁的一种组件,中文直接翻译为"活动",不过如果被翻译为"界面"会更好理解。正常情况,除了Window,Dialog和Toast , 我们能见到的界面只有Activity。…

RT1052 的四定时器

文章目录 1 Quad Timer,简称:QTMR2 单个通道的框图3 QTMR配置3.1 QTMR1 时钟使能。3.2 初始化 QTMR1。3.2.1 QTMR_Init 3.3 设置 QTMR1 通道 0 的定时周期。3.3.1QTMR_SetTimerPeriod 3.4 使能 QTMR1 通道 0 的比较中断。3.4.1 QTMR_EnableInterrupts 3.…

Docker安装 Mysql 8.x 版本

文章目录 Docker安装 Mysql 8.0.22Mysql 创建账号并授权Mysql 数据迁移同版本数据迁移跨版本数据迁移 Mysql 5.x 版本与 Mysql 8.x版本是两个大版本,这里演示安装Mysql 8.x版本 Docker安装 Mysql 8.0.22 # 下载mysql $ docker pull mysql 默认安装最新…

web学习

TCP/IP体系结构(IP和端口): IP是什么:是计算机在互联网上的唯一标识(坐标,代号),用于在互联网中寻找计算机。 访问网站时:域名会通过DNS(解析服务&#xff…

Vue通过指令 命令将打包好的dist静态文件上传到腾讯云存储桶 (保存原有存储目录结构)

1、在项目根目录创建uploadToCOS.js文件 (建议起简单的名字 方便以后上传输入命令方便) 2、uploadToCOS.js文件代码编写 const path require(path); const fs require(fs); const COS require(cos-nodejs-sdk-v5);// 配置腾讯云COS参数 const cos n…

工程师是怎样对待开源

工程师如何对待开源 本文是笔者作为一个在知名科技企业内从事开源相关工作超过 20 年的工程师,亲身经历或者亲眼目睹很多工程师对待开源软件的优秀实践,也看到了很多 Bad Cases,所以想把自己的一些心得体会写在这里,供工程师进行…

跨域冲突问题解决

1、问题分析 服务端和nginx代理 都做了跨域配置,导致请求头重复 headers 里面有两个重复的 Access-Control-Allow-Origin Access-Control-Allow-Methods Access-Control-Allow-Credentials 2、解决方法 在nginx去除服务端的跨域配置 proxy_hide_header Access-…

铁路关基保护新规:优先采购安全可信的网络产品和服务!

《征求意见稿》第十四条提到:运营者应当加强供应链安全保护,优先采购安全可信的网络产品和服务;采购网络产品和服务影响或者可能影响国家安全的,运营者应当预判网络产品和服务投入使用后可能带来的国家安全风险,按照国…

quarkus核心编程笔记

此篇只做总结,有大佬做的更详细 大佬quarkus笔记 依赖注入 在应用中,一个接口有多个实现是很常见的,那么依赖注入时,如果类型是接口,如何准确选择实现呢? 修饰符匹配Named注解属性匹配根据优先级选择写…

论文笔记--GloVe: Global Vectors for Word Representation

论文笔记--GloVe: Global Vectors for Word Representation 1. 文章简介2. 文章概括3 文章重点技术3.1 两种常用的单词向量训练方法3.2 GloVe3.3 模型的复杂度 4. 文章亮点5. 原文传送门6. References 1. 文章简介 标题:GloVe: Global Vectors for Word Representa…

自己实现MyBatis 底层机制--抽丝剥茧(上)

😀前言 本篇博文是学习过程中的笔记和对于MyBatis底层机制的分析思路,希望能够给您带来帮助😊 🏠个人主页:晨犀主页 🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到…

(树) 剑指 Offer 27. 二叉树的镜像 ——【Leetcode每日一题】

❓剑指 Offer 27. 二叉树的镜像 难度:简单 请完成一个函数,输入一个二叉树,该函数输出它的镜像。 例如输入: 4/ \2 7/ \ / \1 3 6 9镜像输出: 4/ \7 2/ \ / \9 6 3 1示例 1: 输…

28_计算机网络(Computer Networks)基础

本篇介绍计算机网络的基础知识。 文章目录 1. 计算机网络历史2. 以太网" (Ethernet)2.1 以太网" (Ethernet)的简单形式及概念2.2 指数退避解决冲突问题2.3 利用交换机减少同一载体中设备2.4 互联网(The Internet)2.5 路由(routing)2.6 数据包…

基于峰谷分时电价引导下的电动汽车充电负荷优化(matlab代码)

目录 1 主要内容 峰谷电价优化 电动汽车充电负荷变化 2 部分代码 3 程序结果 1 主要内容 该程序基本复现《基于峰谷分时电价引导下的电动汽车充电负荷优化》,代码主要做的是基于NSGA-II的电动汽车充电负荷优化,首先,在研究电动汽车用户充…

重生之我要学C++第五天

这篇文章主要内容是构造函数的初始化列表以及运算符重载在顺序表中的简单应用,运算符重载实现自定义类型的流插入流提取。希望对大家有所帮助,点赞收藏评论,支持一下吧! 目录 构造函数进阶理解 1.内置类型成员在参数列表中的定义 …