Flutter工程常见问题集合
本文最后更新于:2019年12月13日 晚上
在学习使用flutter的过程中,遇到一些工程上的问题。比如flutter的配置,IDE的设置等等。
flutter doctor 需要jdk1.8
需要jdk1.8;如果装的是jdk9及以后的版本,flutter doctor会一直提示你需要升级android SDK
https://flutter.io/flutter-for-android/#views
flutter升级遇到网络错误 - Got socket error
win7双击打开flutter_console.bat
,尝试用flutter upgrade
升级时,遇到错误。1
2
3
4
5
6
7
8E:\sdk_flutter\flutter>flutter upgrade
Checking Dart SDK version...
Downloading Dart SDK from Flutter engine 09d05a38912a3c1a906e95099cac9a7e14fae85
f...
Unzipping Dart SDK...
Updating flutter tool...
Got socket error trying to find package mockito at https://pub.dartlang.org.
Error: Unable to 'pub upgrade' flutter tool. Retrying in five seconds...
报错:连接不上https://pub.dartlang.org
用梯子和不用梯子都会报这个错误。查阅官网https://flutter.io/get-started/install/
官网说中国用户请参考https://github.com/flutter/flutter/wiki/Using-Flutter-in-China
参考文章建议设置2个环境变量1
2export PUB_HOSTED_URL=[https://pub.flutter-io.cn](https://pub.flutter-io.cn/)
export FLUTTER_STORAGE_BASE_URL=[https://storage.flutter-io.cn](https://storage.flutter-io.cn/)
我用的是win7,在环境变量 -> 用户变量中添加了这2个变量1
2FLUTTER_STORAGE_BASE_URL https://storage.flutter-io.cn
PUB_HOSTED_URL https://pub.flutter-io.cn
再重新执行flutter upgrade
即可
使用flutter_console.bat
时,应该以管理员身份运行
Android Studio 3.0.1 的flutter项目找不到设备 - no connected device
尝试运行flutter项目时,出现提示框
此时注意到as顶部工具栏的右边少了设备框【Flutter Device Selection】
红圈的位置本应该显示当前连接的设备,但是在代码写错一次后,这一栏就消失了。
错误排查
尝试清缓存并重启as,那一栏仍然未出现
flutter已经升级到当前最新版本。
在git-bash中运行flutter doctor
,并没有发现什么问题。1
2
3
4
5
6
7
8$ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel beta, v0.5.1, on Microsoft Windows [Version 6.1.7601], locale zh-CN)
[√] Android toolchain - develop for Android devices (Android SDK 27.0.3)
[√] Android Studio (version 3.0)
[√] Connected devices (1 available)
• No issues found!
由此猜测是Android Studio的问题。新建一个flutter工程,观察到设备框又正常了
那么原来工程里面为何总是说找不到设备?
仔细回想了一下,参考flutter教程时,添加了一个images
目录,并且修改了pubspec.yaml
文件。检查发现assets的缩进弄错了。把缩进改成2个空格后,设备框就出现了。1
2
3# To add assets to your application, add an assets section, like this:
assets:
- images/lake.jpg
由此可见,as对pubspec.yaml
文件十分敏感。
Flutter 示例工程flutter_gallery
遇到的网络问题
beta分支的flutter_gallery
把资源文件都放在了 https://flutter.googlesource.com/gallery-assets/
这个用浏览器是可以打开的,但是as运行的时候会报 fatal: not a git repository ;
参考 https://github.com/flutter/flutter/issues/13763 ,决定把channel切换到master
切换到master channel后,把flutter中的bin目录整个删掉;运行flutter doctor重新下载一次dart的SDK。可运行master中的demo。
Android Studio找不到Flutter SDK
运行了flutter upgrade
后,打开as发现找不到SDK了。
开发环境是win7,进行检查:
- 环境变量是正常的
- 使用cmd运行flutter doctor正常
- as能跑普通的安卓工程
检查flutter sdk git 仓库的情况,发现有些文件被修改了。使用git将其更新。运行flutter doctor
重新编译SDK。
打开as发现问题解决。