在我们QQ群(892398530)中总会遇到各种各样的问题,现在将一些常见问题总结一下,以供大家学习。
一、flutter run或者flutter packages get 卡住了
安装Flutter的时候一定没看文档,由于你懂的原因,国内使用Flutter需要配置镜像。为PUB_HOSTED_URL
和FLUTTER_STORAGE_BASE_URL
配置下指定地址。目前来有两个镜像可供选择:
//上海交通大学 Linux 用户组
FLUTTER_STORAGE_BASE_URL: https://mirrors.sjtug.sjtu.edu.cn
PUB_HOSTED_URL: https://dart-pub.mirrors.sjtug.sjtu.edu.cn
//Flutter 社区
FLUTTER_STORAGE_BASE_URL: https://storage.flutter-io.cn
PUB_HOSTED_URL: https://pub.flutter-io.cn
至于选哪个,看你爱好了。
在Windows上就是配置环境变量了。以Windows10为例,右击此电脑
,依次选择选择属性
->高级系统设置
->环境变量
,
然后就是这张图了:
至于为当前用户还是系统创建环境变量,看你心情:
对MacOS或者Linux来说,运行flutter命令前可以这样:
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
当然了这只对当前终端有效,如果想一劳永逸可以将上述环境变量添加到/etc/profile
或者~/.bashrc
中:
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
二、License for package Android SDK Build-Tools 28.0.3 not accepted.
运行flutter doctor
之后有如下提示:
无非就是要你同意一下android-licenses
,我们接着运行: flutter doctor --android-licenses
,然后一顿yes就可以了。
三、gradle无法下载依赖
四、_是什么意思
经常在看到类似如下所示的代码:
fluwx.responseFromShare.listen((_) {
//do something
});
所以,_
到底是什么?这个_
就是一个普通参数,和a
,b
,c
这样的参数实质是一样的。一般来说,被命名为_
的变量一般来说是不会被引用的,相当于一个占位符,是一种不成文的规定,类似的规定也可见于golang
,kotlin
等语言中。
五、type 'String' is not a subtype of type 'int' in type cast
没什么可说的,就是类型转换错误,常见于json解析中。除了仔细检查别无选择。
六、运行android时提示Bad UTF-8
引起这个问题的原因太多了,不好详述。但是我可以告诉你一个办法。最简单的就是安装一个AndroidStudio,然后在项目上右键,选择Flutter
:
然后点击Run:
一般来说,运行一下,控制台就会告诉你究竟有什么问题。
当然了,如果不想安装AndroidStudio也是可以的,前提是你会玩终端,首先进入android
目录,然后运行:
./gradlew assembleDebug
在Windows下:
gradlew assembleDebug
终端会给出相应的错误信息,一般来说都能解决问题。
六、Android resource linking failed
如下图:
修改compileSdkVersion
到指定版本,上图就是要改到28。找到build.gradle
,具体位置如下:
然后修改
compileSdkVersion
版本:八、我的java文件怎么全飘红了
我的java文件全红了,而且自动提示也没了。
你为什么要在Flutter工程中编写原生代码?请用AndroidStudio或者Xcode打开对应的原生项目。至于怎么打开请看第六条。
如果阁下练过铁头功,非想在Flutter工程写Android的原生代码,那你可以打开AndroidStudio是设置,找到
Flutter
选项,然后勾上下面的选项试试:这只是一个实验性的选项。
八、编写插件怎么没提示
看第七条去。
九、有没有上线的Flutter App啊
有。大厂有闲鱼,now直播,美团外卖及京东金融等应用,这几个是混合开发,小厂有排班日历,这是一个纯flutter应用。
还有更多的请点击这里。
最后
写了这么多,就不能关注一下微信公众号?