版权声明:本文为博主原创文章,未经博主允许不得转载。https://www.jianshu.com/p/22675c1632dc

转载请标明出处:
https://www.jianshu.com/p/22675c1632dc
本文出自 AWeiLoveAndroid的博客


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


Flutter系列博文链接 ↓:

工具安装:

  • Flutter从配置安装到填坑指南详解

Flutter基础篇:

  • 谷歌Flutter1.0正式版发布
  • Flutter基础篇(1)– 跨平台开发框架和工具集锦
  • Flutter基础篇(2)– 老司机用一篇博客带你快速熟悉Dart语法
  • Flutter基础篇(3)– Flutter基础全面详解
  • Flutter基础篇(4)– Flutter填坑全面总结
  • Flutter基础篇(5)– Flutter代码模板,解放双手,提高开发效率必备
  • Flutter基础篇(6)– 水平和垂直布局详解
  • Flutter基础篇(7)– Flutter更新错误全面解决方案(图文+视频讲解)
  • Flutter基础篇(8)– Flutter for Web详细介绍
  • Flutter基础篇(9)– 手把手教你用Flutter实现Web页面编写
  • Flutter1.9升级体验总结(Flutter Web 1.9最新版本填坑指南)

Flutter进阶篇:

  • Flutter进阶篇(1)– 手把手带你快速上手调试Flutter项目
  • Flutter进阶篇(2)– Flutter路由详解
  • Flutter进阶篇(3)– Flutter 的手势(GestureDetector)分析详解
  • Flutter进阶篇(4)– Flutter的Future异步详解
  • Flutter进阶篇(5)– 使用Flutter创建插件详解并发布到Pub库
  • Flutter进阶篇(6)– PageStorageKey、PageStorageBucket和PageStorage使用详解
  • Flutter进阶篇(7)– Flutter路由轻量级框架FRouter
Dart语法系列博文链接 ↓:

Dart语法基础篇:

  • Flutter基础篇(2)– 老司机用一篇博客带你快速熟悉Dart语法(这是Dart语法系列的第一篇)
  • Dart的语法详解系列篇(二)– 类与函数
  • Dart的语法详解系列篇(三)– mixin入门
  • Dart的语法详解系列篇(四)– 泛型、异步、库等有关详解
  • Dart2.6正式版发布,支持编译为native可执行文件

Dart语法进阶篇:

  • Dart语法进阶篇(一)– Dart源码的排序算法详解

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

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

1、使用gradle的时候,设置了国内镜像和翻墙工具不能一起用 ,一旦一起用那么下载gradle很慢,要么下载不了,要么直接报错!!!


2、如果添加第三方库下载很慢,请确保正确设置了国内镜像和开发环境。如果还是不行,建议翻墙试试看。

不知道怎么配置的点击这里进行查看: Flutter配置安装详解

3、创建相关缓存文件夹。

在C盘的Flutter缓存目录,具体为:C:UsersAdministratorAppDataRoamingPubCachehosted,Administrator是你的电脑名称,这里面默认是一个名为 pub.dartlang.org 的文件夹,我们现在查找看看有没有叫做 pub.flutter-io.cn 的文件夹,如果有,为了省事,建议把pub.dartlang.org的文件夹里面的文件全部 拷贝到 pub.flutter-io.cn 文件夹里面就可以了。如果没有,就创建一个名为 pub.flutter-io.cn 的文件夹,然后再执行拷贝工作。一般来讲,配置了国内镜像的话,就会有 pub.flutter-io.cn 文件夹。以后如果再下载其他的库,都会缓存在pub.flutter-io.cn 文件夹里面。


4、你如果在国外,要使用Flutter,无需设置国内镜像,也无需翻墙。其实还是很棒的。


5、确保设置好环境,不管是 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

frc 81a34c4f6a610167a789c27e38558f6c - Flutter基础篇(4)-- Flutter填坑全面总结
frc 3bf7fc9789d7dcc20cecc91c5bc791d9 - Flutter基础篇(4)-- Flutter填坑全面总结

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

frc 381dad9d4af3b62736d71cb482d8673d - Flutter基础篇(4)-- Flutter填坑全面总结

(4)本地gradle安装版本:

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

frc 8c8f037738d96cdee743592e265cfb4c - Flutter基础篇(4)-- Flutter填坑全面总结

(5)gradle更多版本,可以访问gradle官网 http://services.gradle.org/distributions/,找到对应版本进行下载(无需翻墙,可直接下载):

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

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

关键详细信息截图如下:

frc f01f8a58fb2846a81b8ed5c01f6ae423 - Flutter基础篇(4)-- Flutter填坑全面总结

更多关于gradle有关的问题,可以看我的博客Android Studio3.0填坑指南, 如果这里未提到的,请看这里全面总结Android Studio2.X的填坑指南


1、【大坑,切记】Flutter目录的 dart sdk 和 [dart官网](https://dart.dev/get-dart

) 直接下载的dart sdk安装包是不兼容的,不要把dart官网直接下载的dart sdk安装包直接放到flutter安装路径里面。

注:flutter是通过flutter doctor命令自动下载dart sdk的,每一个版本的flutter自带有一个版本的dart sdk,我们不要自己去修改dart sdk版本,我们也不要替换掉flutter安装路径里面的dart sdk。你在dart官网单独下载的 dart sdk 放到flutter目录里面 是没用的。

具体踩坑过程,请看我去年发布的视频,里面有详细讲解:Dart开发前端页面基础教程1

2、Flutter项目一定要放在英文路径里面,否则会报错,如图所示:

frc 2691039512b77df6ca35ccf0d47d22e9 - Flutter基础篇(4)-- Flutter填坑全面总结

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

frc 2babc810910aef3e322e5c4abfbeed42 - Flutter基础篇(4)-- Flutter填坑全面总结

【解决方式】首先关掉当前已经打开的Android Studio进程,然后打开Android Studio安装目录下的 bin 目录,找到 idea.properties 文件,在文件最后追加以下这行代码,disable.android.first.run=true ,然后保存,以后再次打开Android Studio创建项目就不会卡住了。请看下图所示:

frc 295323e81bcd4d3ecaa9eade490a933f - Flutter基础篇(4)-- Flutter填坑全面总结

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

  • 这里我遇到过两种不同的情况:

【问题1:】执行flutter doctor -v命令出现Android linceses status unknown的提示。

frc c45629e9837188dc01bdd0bc6e54f63e - Flutter基础篇(4)-- Flutter填坑全面总结

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

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

【问题2:】执行flutter doctor -v命令出现Android linceses status unknown的提示,但是奇怪的是我执行命令flutter doctor --android-licenses,自动就修复了。

frc bcfa59608fab5e4d1d5d635df61ef85b - Flutter基础篇(4)-- Flutter填坑全面总结

【解决方案:】执行命令flutter doctor --android-licenses,奇怪的是这里并没有让我输入其他的命令,自动修复了。不知道电脑抽了什么风。

frc dd80135cf6624034e3ec46b7b8cca73d - Flutter基础篇(4)-- Flutter填坑全面总结

5、下载使用别人的开源库,使用Android Studio打开报错,让你下载一大堆库。

【注意】这里下载的包名包含有google,intellij,apache,jetbrains之类的关键字。这样的大量出现一定是Android Studio版本号不匹配的问题。如果说是使用的第三方库没有下载下来,会提示某个库名称,让你下载的。这个需要注意了。

如图所示:

frc a1253f2a5e2bc594323071bee9a3a8f5 - Flutter基础篇(4)-- Flutter填坑全面总结

【原因分析】因为别人使用的Android Studio版本号和你使用版本号不一致。

【解决方案】查看Android Studio版本号在本文开头有介绍。然后打开项目的android/build.gradle,找到dependencies,然后修改步骤如下:

比如别人使用的是3.3.1版本,而你电脑使用的是3.2.1版本,那么你把3.3.1改成3.2.1,重新运行一下项目就正常了。

▶ 修改前:

dependencies {
    classpath 'com.android.tools.build:gradle:3.3.1'
}

▶ 修改后:

dependencies {
    classpath 'com.android.tools.build:gradle:3.2.1'
}

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

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

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


7、Flutter 运行项目 一直卡在Initializing gradle…不能动了

frc 27a8e4f73757619b67b3a9520f204e7d - Flutter基础篇(4)-- Flutter填坑全面总结

【问题分析:】镜像的原因导致的,国内访问不了谷歌,需要翻墙。

【解决方案:】

方案1:翻墙试试看。

如果不行尝试就看看方案2: 打开项目根目录/android/,找到build.gradle文件,打开,首先注释掉google()jcenter(),然后在下方添加一行代码maven { url 'https://maven.aliyun.com/repository/google' } ,这个是阿里云的镜像,构建速度会快一些,具体放置位置如下所示:

buildscript {
    repositories {
        //google()
        //jcenter()
       // 新增一行代码  放在这里
        maven { url 'https://maven.aliyun.com/repository/google' }
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.3'
    }
}

allprojects {
    repositories {
        // 注释掉google()和jcenter()
        //google()
        //jcenter()
       // 新增一行代码  放在这里
        maven { url 'https://maven.aliyun.com/repository/google' }
    }
}

rootProject.buildDir = '../build'
subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
    project.evaluationDependsOn(':app')
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

如果还是不行的话,那就把google()或者jcenter()的注释取消,逐个尝试看看,那三个镜像总有一个是可以使用的。

方案3: 方案2中的国内镜像设置之后还是卡住,建议看看是不是同时开了翻墙工具。国内镜像和翻墙工具会冲突,用了国内镜像,建议关闭翻墙工具

方案4:(无奈之计)最近帮朋友看了这个问题,前面几项都试过了,还是很卡,最后一看电脑配置,AMD的CPU,吐我一口老血,编程开发多年,一直是intel的CPU(因为android sdk有一个intel加速工具),intel的cpu跑项目更快,AMD的刚开始做开发用过,特别卡,放弃了,换成了intel的一直用到现在。如果是AMD的CPU,建议换成intel的CPU,当然如果你条件好,建议买个mac更好


8、初次创建项目,一片红,怎么办?如图所示:

frc 8cc81be88813be36f55cf30ec3804949 - Flutter基础篇(4)-- Flutter填坑全面总结

【原因分析】项目说需要的用到的依赖库还没有下载下来,所以爆红。

【解决方案】点击右上角的Get depencies镜像下载相关的库。这时候可以看到下方的命令窗口显示:“running flutter packages get in xxx”,耐心等待即可。


9、点击Get depencies后者命令行输入flutter packages get结果卡住了,想要的库下载不下来怎么办?

【原因有很多】:

(1)没有正确安装flutter环境,比如没有执行flutter doctor命令去下载dart sdk,导致一些相关的dart库爆红或者下载不下来。

解决:建议执行flutter doctor命令去下载dart sdk

(2)没有配置国内镜像和创建相关缓存文件夹。导致下载很慢。

在C盘的Flutter缓存目录,具体为:C:UsersAdministratorAppDataRoamingPubCachehosted,这里面默认是一个名为 pub.dartlang.org 的文件夹,我们现在查找看看有没有叫做 pub.flutter-io.cn 的文件夹,如果有,为了省事,建议把pub.dartlang.org的文件夹里面的文件全部 拷贝到 pub.flutter-io.cn 文件夹里面就可以了。如果没有,就创建一个名为 pub.flutter-io.cn 的文件夹,然后再执行拷贝工作。一般来讲,配置了国内镜像的话,就会有 pub.flutter-io.cn 文件夹(不知道怎么配置的点击这里进行查看: Flutter配置安装详解)。以后如果再下载其他的库,都会缓存在pub.flutter-io.cn 文件夹里面。


10、Unable to find git in your PATH

错误如图所示:

frc b424f978cc4b60a37b7d0dc770d113ca - Flutter基础篇(4)-- Flutter填坑全面总结

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


11、SocketException: OS Error 信号灯超时时间已到

frc d3ffde22dda16389be8180c3fde9932f - Flutter基础篇(4)-- Flutter填坑全面总结

建议:设置国内镜像,然后重启试试看。实在不行就翻墙试试看。


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

frc 460af7c4358dafaa1215ec07350fbf5b - Flutter基础篇(4)-- Flutter填坑全面总结

【解决方案】把Flutter添加到环境变量。具体的请查看这里:开发工具总结(10)之Flutter从配置安装到填坑指南详解,有详细图文说明。


13、模拟器运行白屏问题

【解决方案有很多种,可以根据实际情况自由选择:】

(1)如果用的是Genymotion模拟器,或者其他的模拟器,可能原因是集成显卡驱动没装好,如果缺少某个驱动,建议下载驱动精灵或者品牌官网驱动安装,然后再运行模拟器试试看。

(2)如果用的是Genymotion模拟器,可能是virtualbox的版本与genymotion版本不兼容引起的。建议下载自带virtualbox的genymotion版本再试试看。

(3)打开模拟器设置界面,run->Edit Configurations 里面添加--enable-software-rendering 再次运行就OK了。

(4)建议新建模拟器时,不要勾选硬件加速,这个一般用不上,硬件加速巨坑,与某些东西不兼容。可以在AS右上角找到Android模拟器管理,找到对应的模拟器,看看你的模拟器设置里面是否有硬件加速,如果有,就换成其它的。

(5)使用原生平台的冷启动方案。Flutter已经提供了冷启动方案,下面是一个最简单的示例:

【注意】:有些人编辑android里面的xml文件的时候,会发现部分是红色的,其实你可以点击菜单open,然后选择你项目里面的android目录,然后在弹出的窗口选择open in new window,表示新开一个窗口,这样去编写代码,不会出错。

完整示例代码请查看:https://github.com/AweiLoveAndroid/Flutter-learning/tree/master/projects/flutter_white_screen

drawable目录有一个launch_background.xml文件,我们打开之后可以看到一个注释,意思是说:这里面的内容可以换成你的App logo或者其它内容,我们可以做一个修改,内容如下:

最后一步是修改styles.xml文件,添加两个配置item选项,示例如下:

具体的文件目录位置如下图:

frc 96e3ccc51c672528aef42dfa49a3e262 - Flutter基础篇(4)-- Flutter填坑全面总结

最终示意图如下所示:

frc 6060f1d55cbc8660e63b6c8d0d6314a1 - Flutter基础篇(4)-- Flutter填坑全面总结
flutter启动白屏的解决示意图.gif

14、安装项目到模拟器或者手机时,Gradle task assemableDebug executing之后log停止并自动退出安装,然后应用安装不到模拟器或手机上。

问题如图所示:

frc 8e7fef069678341e841e4ba9232233fb - Flutter基础篇(4)-- Flutter填坑全面总结
Gradle task assemableDebug问题

【原因】:Flutter版本太低了。
【解决方案】使用flutter upgrade更新Flutter。


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

frc 50c1da24b3b28919d87215e6a5e4407b - Flutter基础篇(4)-- 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。


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

frc 43369f716cc7a901a7a2bf9d1d2d4efb - Flutter基础篇(4)-- Flutter填坑全面总结

【解决方案:】

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


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

frc deed687c17ef50af736a4819ac5ba09b - Flutter基础篇(4)-- 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
    }
}

具体的请看下图所示:

frc 76429ecf7f1d9b8c728d7927491db5f6 - Flutter基础篇(4)-- Flutter填坑全面总结

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

frc 380782271102ac7576c2fae2a56348c3 - Flutter基础篇(4)-- Flutter填坑全面总结

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

frc e95861cbafbd48c7ac13f052bcd50cec - Flutter基础篇(4)-- Flutter填坑全面总结

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

frc c6f841e1c6bd07257721edc82291cba8 - Flutter基础篇(4)-- Flutter填坑全面总结

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

frc e510f759b65c63708de3fbf2b402860e - Flutter基础篇(4)-- Flutter填坑全面总结

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

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

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

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

frc 4cdd052088398da78c13d64fddf7d901 - Flutter基础篇(4)-- Flutter填坑全面总结

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

frc 98e418b3c4ca4baa434261ac12c49810 - Flutter基础篇(4)-- Flutter填坑全面总结

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


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

frc 31069868f475d7a5b3c0775f605dcb69 - Flutter基础篇(4)-- Flutter填坑全面总结

【原因】

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

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

【解决方案】

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


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

frc 5ac404ad904156c61eca78d650040717 - Flutter基础篇(4)-- Flutter填坑全面总结

【解决方案】

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


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

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

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

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

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

frc 08298585b885e6395dc89604eea91942 - Flutter基础篇(4)-- Flutter填坑全面总结

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

frc 8b87605d25a9715575b5ea475d1b47f2 - Flutter基础篇(4)-- 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

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

frc 5b374a5f19170b43ac8a2d36e6282451 - Flutter基础篇(4)-- Flutter填坑全面总结

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

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

frc 12388bc1a9bd370f4fb8153d709f88d1 - Flutter基础篇(4)-- Flutter填坑全面总结
frc 53a3219ca1b45921a4ef8d6bb93d0940 - Flutter基础篇(4)-- Flutter填坑全面总结
frc 44bc4db0ef3d215ecded730549ee2447 - Flutter基础篇(4)-- Flutter填坑全面总结

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

【解决方案】

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

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

frc fdcd432ae1c6e968d7d7c200e88567b1 - Flutter基础篇(4)-- Flutter填坑全面总结

25、 could not resolve all files for configuration ‘classpath’ could not find ling-gradle-api.jar

frc 86b9dff3ff81e98e847cd52a4fbc9cf3 - Flutter基础篇(4)-- Flutter填坑全面总结

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

frc b215fbbfb91de74b4f0d551cf11f6c1c - Flutter基础篇(4)-- Flutter填坑全面总结
修改flutter安装目录里面的flutter.gradle全局配置

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

frc 158ef3f0c0c8fa1ecf3170478a4096a7 - Flutter基础篇(4)-- Flutter填坑全面总结

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

project evaluation failed including an error in afterEvaluate{}

frc 2616c902349280fcd29205ea87e0a3ee - Flutter基础篇(4)-- Flutter填坑全面总结

28、Bad UTF-8 encoding

frc 88dfeeda2f8a2cef1df31e9140a06625 - Flutter基础篇(4)-- Flutter填坑全面总结

29、Invoke-customs are only supported starting with Android O (–min-api 26) Message{kind=ERROR, text=Invoke-customs are only supported starting with Android O (–min-api 26), sources=[Unknown source file], tool name=Optional.of(D8)}

【问题产生】这个问题是Android项目导入Flutter module之后出现的。

frc e1eadaa147f5811a9c8f27a1f03f44b1 - Flutter基础篇(4)-- Flutter填坑全面总结

【问题解决】在gradle.build中添加以下内容:

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

如下图所示:

frc 64e689568229a3d98779f749d0a67276 - Flutter基础篇(4)-- Flutter填坑全面总结

30、The application may be doing too much on its main thread.

frc 8506e76551b6a3bafc6a350411c93bb1 - Flutter基础篇(4)-- Flutter填坑全面总结

字面意思就是应用在主线程运行太多。

解决: 请适当做一些异步或者子线程操作,减轻主线程负担。


31、Gradle编译失败因为Flutter app用到了 androidx

frc 9dc9dc23f29bac3ee9e6c9c3b5c6d77b - Flutter基础篇(4)-- Flutter填坑全面总结

解决:参考谷歌官方文档配置即可,CV就可以了:https://flutter.dev/docs/development/packages-and-plugins/androidx-compatibility

Flutter基础篇(4)– Flutter填坑全面总结