Flutter 踩坑记录

-


AS 创建 flutter project 卡死

  • 这是在升级AS和flutter sdk之后遇到的
  • 第一次创建项目建议使用命令行
flutter create \<project\_name\>
  • 然后运行,发现是package get卡住了,被墙了
flutter run
  • 配置镜像可以解决,这个在 etc/profile 里面配过了,但是没有效果,因为zsh默认不加载etc/profile,可以 echo ${pub_hosted_url} 测一下,建议还是在默认的shell的配置文件里面设置,比如我使用的是.zshrc
export pub\_hosted\_url=https://pub.flutter-io.cn
export flutter\_storage\_base\_url=https://storage.flutter-io.cn
  • 如果需要终端走代理可以尝试下面,同时curl ip.sb 检测当前ip
export ALL\_PROXY=socks5://账号:密码@127.0.0.1:1080


Initializing gradle

  • 永久停留在这一步,其实是在下载新版本的gradle,查看.gradle的dist目录会发现不论等多久大小都是 0 k,直接去官网下载对应版本,建议使用迅雷
https://services.gradle.org/distributions/
  • 然后将zip放进dist的对应文件夹中一个名称是乱码的子文件夹内,不需要解压,删除原有的xx.part文件(大概是这个,不记得了),重新build
  • 如果需要使用dist没有的gradle都可以这么做,比如升级gradle的时候


Could not resolve com.android.tools.build:gradle:3.1.2

  • 这也是在升级AS和flutter sdk之后遇到的,我的情况,不论是在idea,as还是命令行编译都是这样
  • github有这个issue,很多人都遇到这个问题,解决方法五花八门,估计很多因素都可以导致这个,所以建议都尝试一下,官方现在也没找到办法
https://github.com/flutter/flutter/issues/22470
  • 下面是一些可参考的解决办法,注意有一些做法是完全相反的
1.as配置 build tools-\>gradle-\>android stuido-\> 勾选 enable ... maven repo
2.设代理
3.关代理,并清除与google相关的host,以及关闭as中与代理相关的配置
4.gradle 中添加 google(),适用于版本比较旧的AS,新版默认是有的
5.gradle 中添加 mavenCentral(),在flutter sdk中进行用样的配置 路径为 /packages/flutter\_tools/gradle/flutter.gradle
6.升级gradle,见上文
7.降级gradle,见下文
8.降级flutter sdk(官网上有所有版本的下载链接)
9.卸载AS重装(代价挺大的,但确实csdn上确实有人这样解决类似问题)
  • 我是通过7.解决的,将项目的gradle配置设置为.gradle的dist中缓存的gradle版本,一个个尝试,同时gradle的classpath可能也需要更改,建议使用以前使用过的版本


使用colors类时AS卡死

  • 文档中的图片会导致联网下载,这个时候很容易卡死

  • 这个bug在3.3才会出现,3.4已经修复,3.4修复了30多个bug,并且更新侧重于使用体验和稳定性,个人觉得可以大胆更新,实在不想更新的也可以参看下面的解决办法

  • 设置 editor->general->code completion->show the documentation popup in xxx ms ,取消勾选,这个意思是自动补全时不要弹出右侧的文档窗口

  • 取消勾选之后,光标放在类名处一段时间还是可以弹出文档的,所以不会有什么影响,不过弹出的时候该卡死还是会卡死,这样的类并不多,其他的比如rx里面有一些也会,不手贱就行,或者选择直接关闭这个功能

AS 3.4更新 gradle

  • 以前AS下不了gradle,只要手动下载到.gradle下对应版本的名称为乱码的文件夹下就可以了,然而3.4根本就不生成这个文件夹了,直接在设置中修改使用本地gradle(use local gradle ..),本地gradle同样手动下载就可以了



持续更新