简介
本篇文章将用于记录我在flutter开发学习中踩过的大大小小的坑,坑的类型呢,主要分为环境上的坑和代码上的坑。
坑
环境篇
1.flutter upgrade 报错
flutter upgrade 是在控制台中执行的命令,作用是更新flutter sdk。以往我一直用这命令升级flutter也没出过什么问题,但是,今天我用它升级至v0.10.4的时候遇到一个报错。
error: Your local changes to the following files would be
overwritten by merge:
packages/flutter_tools/gradle/flutter.gradle
Please commit your changes or stash them before you merge.
Aborting
大意是文件冲突了吧,要我们先解决冲突才能更新。首先,问度娘,无果。然后,问谷歌,在github的flutter官方版块找到这个话题,其中的8赞(最高)回答说他是先执行这个
git stash save –keep-index 然后再执行这个 git stash drop 然后再更新 flutter upgrade 就Ojbk了,好的我试了一下,无效。突然我发现,这个路径有点眼熟,找到对应文件一看。好嘛,前段时间动过的,大概知道怎么回事了。前段时间试跑官方gallary项目的时候报一个gradle相关的错误,百度之后找到一个解决办法,其中就需要修改这个文件,原样改回来之后再flutter upgrade就成功了。
代码篇
flutter RefreshIndicator无法下拉刷新的问题
当条目过少时listview某些嵌套情况下可能不会滚动(条目多时,超出一个屏幕,不会出现此问题),RefreshIndicator是根据下拉偏移量触发onRefresh操作,不能滚动自然不能下拉刷新。在滚动容器如LIstview、SingleChildScroll中添加physice属性赋值new AlwaysScrollableScrollPhysics(),保持listview任何情况都能滚动,问题解决。
编译篇
1.IOS:flutter run –release 死机
换到flutter channel master && flutter upgrade -v
2.Android:如果还在使用gradle 4.1可能会出现build apk失败
新建一个空的flutter项目,把其中的gradle 4.4拷过来覆盖现有的4.1
3.Android:couldn’t find “libflutter.so
打包成功后,在小米3上安装并运行成功,但是在小米Mix 2s上运行时闪退,连上android studio查看日志报一个 couldn’t find “libflutter.so的错误,百度无果。google后发现在flutter的官方github中不少人遇到了这个问题,貌似是手机cpu位数的问题,使用下面这句代码强转成64,就可以在Mix 2s上正常运行了,可是米3上出现了闪退情况,目前没找到解决办法。
flutter build apk --release --target-platform=android-arm64