Flutter研发报错归整
记录一些 Flutter 研发中遇到错误及处理.
1. Unexpected end of file from server
在新环境安装好 Flutter 环境后 , 运行项目报错
Exception in thread "main" java.net.SocketException: Unexpected end of file from server
搜索后发现是因为 gradle 设置了代理 . 前往 C:/Users/<username>/.gradle/gradle.properties
) (不是项目下的gradle.properties) , 删除多余的代理设置
systemProp.https.proxyPort=1080…
参考链接
2. Waiting for another flutter command to release the startup lock…
在安装依赖时 , 偶尔出现 Waiting for another flutter command to release the startup lock...
, 通常是上一个命令还未执行完毕 , 但是因为墙的原因可能继续等待也未必成功 .
想要终止等待状态 , 需要前往 flutter
安装目录下删除 bin/cache/lockfile
文件即可 . 若显示该文件被使用中无法删除 , 则先杀死 dart 进程再删除即可
1 | // Linux |
参考链接
3. Flutter命令输入后卡住
很多人遇到这个问题 , 在一段时间未用 Flutter 后尝试更新版本 , 或者在使用其他
flutter xxx
命令时 , 命令行窗口直接卡死 , 许久许久之后爆红 , 显示超时之类的 .在此期间下一个 flutter 命令也无法使用 , 只能干等着 , 导致工作效率大大下降 .
首先可以参考上面 2 中所述先强制终止上一个命令 . 然后弄清楚为什么会导致命令执行如此慢的原因.
执行的命令通常是包含了访问 Flutter Git 仓库 ,或者访问 Pub Dart 仓库 , 而这些仓库通常是在海外 . 而当前连 GitHub 直连的速度都比较感人的情况下 , 科学上网是必不可少的 . 当科学上网全局配置时 , 其实对于 Git , Terminal 等默认都是不生效的 , 还得一一去配置 , 显得比较麻烦 . 因此我这边选择配置仓库对应的国内镜像 , 一劳永逸 .
具体可参考 清华大学开源软件镜像站
参考链接
其他参考: 链接
4. MissingPluginException(No implementation found for method getAll on channel plugins.flutter.io/shared_preferences)
在 Flutter 2.2.2 - 2.2.3 左右的版本安装部分插件比如
shared_preferences
后运行安卓程序 , 有可能会提示以上错误 .一番排查后 , 定位此为一个版本不兼容问题导致 Android 部分未注册上该插件 , 此处记录解决方案
__a. 更新 buildTypes
__
1 |
|
b. 增加混淆
1 | -keep class androidx.lifecycle.DefaultLifecycleObserver |
c. 更新 MainActivity
(最重要)
1 | import io.flutter.embedding.android.FlutterActivity |