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
8
E:\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://flutter.io/get-started/install

官网说中国用户请参考https://github.com/flutter/flutter/wiki/Using-Flutter-in-China

参考文章建议设置2个环境变量

1
2
export 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
2
FLUTTER_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项目时,出现提示框

no connected device

此时注意到as顶部工具栏的右边少了设备框【Flutter Device Selection】

as顶部栏
红圈的位置本应该显示当前连接的设备,但是在代码写错一次后,这一栏就消失了。

错误排查

尝试清缓存并重启as,那一栏仍然未出现

清缓存并重启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工程
那么原来工程里面为何总是说找不到设备?

仔细回想了一下,参考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发现问题解决。


Flutter工程常见问题集合
https://blog.rustfisher.com/2018/06/24/Flutter/Flutter-project_common_questions/
作者
Rust Fisher
发布于
2018年6月24日
许可协议