Flutter填坑全面总结

栏目: IOS · Android · 发布时间: 5年前

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

版权声明:本文首发在公众号 Flutter那些事 ,未经授权,严禁转载。

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

★ 使用Flutter开发项目,我发现大部分问题都是环境配置出的问题,所以这里先说 两点需要特别注意的 ,请务必先按这两点去做!

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

2、确保设置好环境,不管是 Gradle 还是 Android Studio 的配置

首次创建项目之后,别急着开发,首先确保 GradleAndroid Studio 的配置保持一致!

(1)下面这张图是这几者之间的关系,请先看仔细了:

Plugin版本( Android Studio 版本) Gradle 版本 对应的 Build Tools 版本
Android Studio 3.0.0+ Gradle 4.1+ Build Tools 26.0.2+
Android Studio 3.1.0+ Gradle 4.4+ Build Tools 27.0.3+
Android Studio 3.2.0+ Gradle 4.6+ Build Tools 28.0.3+

(2)查看 Android Studio 版本 :点菜单栏的 help --> About ,出现的弹窗的第一行就是AS的版本,比如我的是:Android Studio 3.1.3

Flutter填坑全面总结
Flutter填坑全面总结

(3)查看项目中使用的gradle版本: 如图所示,切换到project视图,打开android/app/gradle/gradle-wrapper.properties,然后就可以看到gradle版本信息,如图我这里用的是gradle-4.10-2-all版本的

Flutter填坑全面总结

(4)本地gradle安装版本:

Gradle默认安装路径 C:\Users\Administrator\.gradle\wrapper\dists\ 目录。下载的所有gradle版本都会在这里面。根据各人电脑安装的gradle版本不同有所不同,我这里显示的我电脑安装的版本,如图所示,我们项目里面使用的gradle-4.10-2-all就是在这个路径,以后创建项目如果还要用到这个gradle配置就无需再去网上下载了。

Flutter填坑全面总结

(5)gradle更多版本,可以访问gradle官网 services.gradle.org/distributio…

(6)关于Build Tools 版本的一些建议,建议下载Android SDK Platform 不同版本 以及对应的 Build Tools 版本。

操作方式:File --> Settings --> Appearance & Behavior --> System Settings --> Android SDK,重点关注SDK Platform 和 SDK Tools

关键详细信息截图如下:

Flutter填坑全面总结

1、Flutter初次创建项目一直进不去,错误如图所示:

Flutter填坑全面总结

【解决方式】打开Android Studio安装目录下的 bin 目录,找到 idea.properties 文件,在文件最后追加以下这行代码, disable.android.first.run=true ,然后保存,以后打开Android Studio创建项目就不会卡住了。

2、执行flutter doctor -v命令出现 Android linceses status unknown 的提示。

Flutter填坑全面总结

【问题分析:】新下载的sdk没有同意Android协议。

【解决方案:】按错误提示所说的那样,执行命令 flutter doctor --android-licenses ,然后出现的提示让你选择 y/n ,你只要输入 y ,然后回车,一直坚持到最后就好了。

3、Waiting for another flutter command to release the startup lock... 这个问题的解决

【问题分析:】你开启新的flutter进程时,后台有一个flutter进程没有关闭,导致的冲突。

【解决方案:】关闭后台dart进程,关闭IDE,然后重新打开IDE,运行项目,运行到设备试试看,基本问题不大了。 ( 一句话:重启基本能解决问题

4、Unable to find git in your PATH

错误如图所示:

Flutter填坑全面总结

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

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

Flutter填坑全面总结

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

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

Flutter填坑全面总结

【原因】

由于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。

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

Flutter填坑全面总结

【解决方案:】

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

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

Flutter填坑全面总结

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

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

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

具体的请看下图所示:

Flutter填坑全面总结

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

Flutter填坑全面总结

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

Flutter填坑全面总结

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

Flutter填坑全面总结

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

Flutter填坑全面总结

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

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

    1. Flutter插件版本太老,更新一下Flutter版本,再试试看。
  • 2.  在项目的根路径的 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 文件夹)。

然后检查一下文件夹里面有没有我们报错的那个包,如果有,请删除,然后再去点击 pub get 下载更新一下。如图所示:

Flutter填坑全面总结

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

Flutter填坑全面总结

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

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

Flutter填坑全面总结

【原因】

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

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

【解决方案】

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

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

Flutter填坑全面总结

【解决方案】

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

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

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

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

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

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

Flutter填坑全面总结

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

Flutter填坑全面总结

(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
复制代码

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

Flutter填坑全面总结

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

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

Flutter填坑全面总结
Flutter填坑全面总结
Flutter填坑全面总结

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

【解决方案】

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

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

Flutter填坑全面总结

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

Flutter填坑全面总结

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

Flutter填坑全面总结

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

零基础学Minecraft编程

零基础学Minecraft编程

Martin O''Hanlon、David Whale / 中文Minecraft Wiki翻译团队 / 人民邮电出版社 / 2015-9-7 / 79

在你体验Minecraft冒险的同时,学习宝贵的编程技能! 如果你很喜欢玩Minecraft,却被游戏中的建造耗费大量时间而困扰,并且你想要对游戏添加一些改动,那么本书就是为你而设计的。在游戏中,你可以学习许多Python编程技能,在PC、Mac或树莓派上与游戏进行互动。这些冒险不仅局限在虚拟世界——你也将会学习如何将Minecraft与电子元件连接起来,这样你的Minecraft世界就能够......一起来看看 《零基础学Minecraft编程》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

在线进制转换器
在线进制转换器

各进制数互转换器

随机密码生成器
随机密码生成器

多种字符组合密码