Flutter填坑全面总结

版权声明:本文未经授权,严禁转载。

Flutter是一个新的跨平台开发的工具,博主也玩了一段时间,一步步的踩着坑摸石头过河,这其中受尽了各种各样的坑,各种谷歌,stackoverflow,Flutter官网等查资料,然而有些问题还是不能及时解决,于是就自己尝试着慢慢的摸索除了一些解决方案,在这里就系统的整理一下分享给大家,只希望大家给个鸡腿吃吃,今晚的晚餐就靠大家支持了!

1、Unable to find git in your PATH

错误如图所示:

【原因】未配置git环境变量或者配置不对。正确的应该是找到git根路径\bin ,比如你的路径是:E:\git\bin,你就把这个路径配置到环境变量中。


2、flutter不是内部或者外部命令,也不是可运行的程序或者处理文件。

【解决方案】把Flutter添加到环境变量。


3、git clone下载Flutter源码仓库,出现error: RPC failed; curl 18 transfer closed with outstanding read data remaining

【原因】

由于Http协议错误,当Clone的时候,因为curl的postBuffer默认值太小的原因,而项目可能本身比较大,所以下载失败。

【解决方案:】

打开git命令行 输入 git config –global http.postBuffer 524288000,然后可以输入git config –list 查看刚才的设置是否生效。

说明: git config –global http.postBuffer 524288000 命令的意思:相当于把curl的postBuffer的值修改的大一些。524288000的单位是B,相当于500MB。


4、执行flutter命令的时候,360杀毒软件弹窗提示有病毒。

【解决方案:】

点击右下角 信任此文件 即可。建议执行flutter工程的时候,暂时关闭杀毒软件,如图所示。 有时候升级flutter的时候也会爆出这样的问题,建议关闭杀毒软件。


5、执行flutter install命令安装apk到模拟器的时候报错,报错提示是:

【原因】由于使用了native libraries 。该native libraries不支持当前的cpu的体系结构。我当前用的是x86的模拟器。

【解决方案】打开项目根目录/android/app/build.gradle,在android节点里面添加以下内容:

splits{
    abi {
        enable true
        reset()
        include 'x86', 'armeabi-v7a','x86_64'
        universalApk true
    }
}

具体的请看下图所示:

如果以上操作还不行就换一个arm的模拟器或者真机运行。如下图就是运行在arm模拟器上的示范操作:


6、执行flutter upgrade命令过程中出现的问题。

【解决方案】重启命令行,重新执行flutter upgrade命令,它会自动下载sdk需要的各种工具,这说明环境是没问题的,配置也是没问题的,网络也是OK的。如下图所示:


7、编译项目的过程中出现的版本兼容问题,如图所示。

【解决方案有以下几种方式】

只要看到错误信息含有which doesn't match any version 这样的提示基本都可以使用以下解决方案:

    1. 在项目的根路径的 pubspec.lock 文件和 pubspec.yaml 文件里面搜索,确保 pubspec.lock 文件的引入的第三方插件库的版本号pubspec.yaml 文件里的 版本号一致
    1. 项目里面引入的第三方插件库版本和开发环境不匹配导致的兼容问题。建议把第三方插件库的源码下载下来,放到项目里面去,然后去 修改插件库源码里依赖的Flutter和Dart版本配置信息 即可。使用源码是最好的解决方式。
    1. 在C盘的Flutter缓存目录,具体为:C:\Users\Administrator\AppData\Roaming\Pub\Cache\hosted,这里面默认是一个名为 pub.dartlang.org 的文件夹,我们现在查找看看有没有叫做 pub.flutter-io.cn 的文件夹,如果有,为了省事,建议把pub.dartlang.org的文件夹里面的文件全部 拷贝 到pub.flutter-io.cn文件夹里面就可以了。如果没有,就 创建 一个名为 pub.flutter-io.cn 的文件夹,然后再执行拷贝工作。(一般来讲,配置了国内镜像的话,就会有 pub.flutter-io.cn 文件夹)

8、flutter upgrade因为版本兼容问题导致升级失败。

【解决方案】这里面是因为 flutter_tools 包的兼容性问题 导致的,可能是sdk版本兼容性问题,我们可以执行 flutter upgrade 升级一下Flutter再试试看,如果不行,就按 第六条 的去做。


9、Unsupported Android Studio version,意思是:Flutter插件不支持当前AS版本。

【原因】

当前的AS是3.2的版本。Flutter插件对AS3.2暂时还不兼容(此问题是我在第一次创建flutter的时候出现的,时间是2018年5月份,不过现在flutter插件已经兼容AS3.2了,现在貌似没有出现这个问题了。)。

以后如果还有更新的AS版本出来,只要Flutter插件没有及时更新的话,可能还会有版本兼容的提示信息。

【解决方案】

使用3.0或者3.1版本的AS开发就OK了。


10、执行flutter upgrade命令更新Flutter时,出现SSL read: error:00000000:lib(0):func(0):reason(0), errno 10054

【解决方案】

打开git命令行输入 ·git config –global http.postBuffer524288000·,然后可以输入 ·git config –list· 查看刚才的设置是否生效。


11、使用flutter doctor命令出现的错误,这类错误可能有多种形式,它们都有一个共同的关键字 StartBitsTransferCOMException

我遇到的几个不同的错误示例图如下:

【解决方案】 原因有2个:

(1)BITS传输服务未开启:

计算机 --> 右键 管理 --> 服务和应用程序里面,点击服务,然后如下图所示:

然后选中图中标记的这个,右键点击属性,然后改成自动,确定。如下图所示:

(2)没有设置国内镜像:

如果你在国内使用 Flutter,那么你可能需要找一个与官方同步的可信的镜像站点,帮助你的 Flutter 命令行工具到该镜像站点下载其所需的资源。你需要为此设置两个环境变量:PUB_HOSTED_URL和FLUTTER_STORAGE_BASE_URL,然后再运行 Flutter 命令行工具。

需要添加国内镜像到环境变量中。具体如下:

FLUTTER_STORAGE_BASE_URL: https://storage.flutter-io.cnPUB_HOSTED_URL: https://pub.flutter-io.cn

如下图所示:如果还出现下载错误 建议重启电脑再试试看。


12、update_dart_sdk.ps1文件里面出错,有多种错误表现形式,如下面3个图所示。

我们可以看到这几种错误的共同之处:都有 BitsTransformer 或者 CategoryInfo之类的字眼。

报的错误会有各种各样,但是只要有以上提到的两种字眼的解决方式如下:

【解决方案】

建议 删除Flutter根路径/bin/cache文件夹,然后重新执行 flutter doctor 命令。

我电脑的Flutter根路径/bin/cache文件夹所在位置如下图所示:


13、设置了国内镜像和翻墙工具不能一起用 一旦一起用就会下载gradle或者依赖的第三方库很慢 要么下载不了 要么直接报错!!!


14. could not resolve all files for configuration 'classpath' could not find ling-gradle-api.jar

【解决方案:修改flutter安装目录里面的flutter.gradle全局配置

修改flutter安装目录里面的flutter.gradle全局配置


15、Please review your Gradle project setup in the android/ folder


16、android/app.gradle 里面的语法错误导致的编译失败

project evaluation failed including an error in afterEvaluate{}


17、Bad UTF-8 encoding

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏技术墨客

React由0到1

    本文记录了本人以及目前团队从无到有使用React的过程,我们将从webpack开始说起,一步一步展现React最基本的开发生态。在这里并不会介绍任何js...

11730
来自专栏Laoqi's Linux运维专列

MariaDB 安装+编译配置

MariaDB安装 : 下载安装 cd /usr/local/src wget https://downloads.mariadb.com/MariaDB/m...

39470
来自专栏小白课代表

我就是要在Win10中运行Win7!!!

很多时候我们使用的软件很“矫情”,有的只支持Windows10,有的对Windows7兼容性最好,尤其是课代表这种喜欢折腾,经常和各种软件打交道的人来说,只有一...

18720
来自专栏大数据挖掘DT机器学习

python模拟新浪微博登陆功能(新浪微博爬虫)

有些网站设置了权限,只有在登录了之后才能爬取网站的内容,如何模拟登录,目前的方法主要是利用浏览器cookie模拟登录。 浏览器访问服务器的过程 在用户访问网页时...

1K50
来自专栏云计算教程系列

如何在Debian 8上安装Linux,Apache,MySQL,PHP(LAMP)堆栈

LAMP软件堆栈由Linux操作系统,Apache Web服务器,MySQL数据库和PHP脚本语言组成,是Web或应用程序开发的良好基础。这个软件堆栈安装在一起...

39630
来自专栏Flutter&Dart

DartVM服务器开发(第十八天)--项目部署到云服务器

先购买一台云服务器,我选择的是Ubuntu / 16.04 LTS amd64 (64bit)操作系统

28630
来自专栏FreeBuf

支持MACRBACABAC多种模型的Golang访问控制框架 – casbin

casbin casbin是一个用Go语言打造的轻量级开源访问控制框架(https://github.com/hsluoyz/casbin),目前在GitHub...

48580
来自专栏运维一切

CENTOS7 SYSTEMCTL说明 原

PS:RHEL7和CentOS7出来有一段时间了,拿出点时间研究下,有几个地方跟6和5系列相比改变比较大,估计不少童鞋有点不太习惯。下面简要举例说明改变比较大的...

9520
来自专栏运维小白

Git客户端安装及使用

背景 为了我帅气而高大尚的博客一直在研究github,在网上找了一圈,找到了Git的客户端 安装github Git是目前世界上最先进的分布式版本控制系统,gi...

34780
来自专栏云飞学编程

Python爬虫,反爬手段之防盗链的处理

我们日常访问网页,如果从一个网页跳转到另一个网页,http 头字段里面会带个 Referer的参数。那么图片服务器通过检测 Referer 是否来自指定域名,来...

50720

扫码关注云+社区

领取腾讯云代金券