为什么某些变量在flutter自定义类中被标记为final?
升级 Flutter
1、命令方式
2、自己下载替换方式
- 去 Flutter SDK 官网 下载对应的SDK
- 替换掉你本地的
- 关掉所有正在编辑Flutter的项目(如果没有关掉所有的,则会遇到如 @require等找不到的问题)
- 重新pub get
Flutter出现List is not a subtype of type List解决方法
控制台错误如下:
1 | type 'List<dynamic>' is not a subtype of type 'List<String>' |
出现这个错误的原因是由于解析json的数据类型不一致导致
后台返回的一个json字段为:
1 | List<String> imagesString = ['https://1.png', 'https://2.png']; |
解析json用到的model实体类,由于labelList是一个字符串集合数组,
需要在解析labelList字段时加上cast<String>()
1 | List<String> labelList = json['labelList'].cast<String>(); |
二、问题
问题1:Flutter gpu_surface_gl
原因为:机型的gpu不匹配

如果你使用的是命令来运行flutter的话,那么在flutter run加参数就可以。即flutter run --enable-software-rendering。
但是这个办法有个坑,就是热加载的时候要手动在命令行输入r(不是说好的自动的么,也许是我打开的方式不对);
如果不是用命令来运行的话,那解决步骤如下:


–enable-software-rendering
问题2:resource android:attr/fontVariationSettings not found
解决方案:
try to change the compileSdkVersion to:
compileSdkVersion 28
-bash: dart: command not found
原因是下载Fluter SDK时,Dart SDK已经在捆绑Fluter里了,所以需要设置下Dart环境变量的路径:
①打开配置环境变量的文件: .bash_profile
1 | open ~/.bash_profile |
②配置Dart SDK所在路径
1 | export DART_BIN=/Applications/flutter/bin/cache/dart-sdk/bin |
③最后在终端里执行: source ~/.bash_profile 重新加载一下
1 | source ~/.bash_profile |
④此时,就可以用dart命令来执行你想要的操作了。比如
1 | dart --version |
Failed assertion: line 1687 pos 12: ‘hasSize’
原因:Column的子widget中包含ListView