Flutter: 踩坑记录

288 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 11 天 点击查看活动详情

简介

这篇文章主要记录自己在开发Flutter过程中的一些异常和踩坑的问题,分享自己的解决方案,和相关技术点,当再遇到同样问题的时候,可以提供一种思路去快速解决问题。

Waiting for another flutter command to release the startup lock

一、说明

在引入一个第3方依赖后执行package get后长时间提示该语句:

Waiting for another flutter command to release the startup lock

二、解决

删除flutter SDK 下的/bin/cache/lockfile文件

重启Android Studio

之前项目下载三方包没有问题,这两天一直下不下来,最终更换包地址,解决此问题,做个记录

Flutter - 卡在 Running "flutter pub get" in xxx ,解决方案

不同系统

Mac配置环境

//命令行输入

vim ~/.bash_profile

//添加下面三行,保存

export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
export PATH=/Users/计算机名称/flutter/bin:$PATH  //下载的flutterSDK的路径

//命令行输入

source ~/.bash_profile

flutter -h

Windows 新增两个环境变量

PUB_HOSTED_URL ===== https://pub.flutter-io.cn
FLUTTER_STORAGE_BASE_URL ===== https://storage.flutter-io.cn

执行一下 flutter doctor命令

提示 zsh: command not found: flutter

MacOS Catalina 10.15.4 ,flutter的命令失效

据官方说,从 macOS Catalina 版开始,您的 Mac 将使用 zsh 作为默认登录 Shell 和交互式 Shell。您还可以在较低版本的 macOS 中将 zsh 设置为默认 Shell

解决办法

单次解决办法

这种方法,只对当前终端窗口有效,关闭之后无效了

source ~/.bash_profile

永久解决方法

1 、执行:【open ~/.zshrc 】

open ~/.zshrc

2 、如果 提示文件不存在,则执行:【vim ~/.zshrc 】新建一个新文件。

vim ~/.zshrc

3 、再执行【open ~/.bash_profile 】

open ~/.bash_profile

4 、把 bash_profile 中的内容copy到 zshrc 文件中,保存:【:wq回车】。

5 、再使用source命令重新加载一下:【source ~/.zshrc】,下次再编辑这个文件就可以直接执行:【open ~/.zshrc】

source ~/.zshrc

6 、运行【flutter -h 】看生效没有

flutter -h

报Cannot run with sound null safety的解决方法

flutter sdk 版本升级到2.0或者更高的版本后,运行之前的代码会报错,比如:

Error: Cannot run with sound null safety, because the following dependencies don't support null safety: - package:flutter_swiper - package:flutter_page_indicator - package:transformer_page_view For solutions, see dart.dev/go/unsound-… FAILURE: Build failed with an exception.

上面的问题是,这些包不支持 safety模式。我们可以在运行的时候添加--no-sound-null-safety。打开Android Studio,然后依次选择【Run】 -->【 Edit Configurations】 --> 【Add Additional Run args 】--> 【--no-sound-null-safety】,如下图。

然后,再次运行就没有错误了。

除了上面找个方法外,对于一些老的项目,我们还可以通过降低sdk版本的方式来解决报错,比如。

sdk: ">=2.12.0 <3.0.0" 改为 sdk: ">=2.8.0 <3.0.0"

因为sdk 2.12 以上版本有了空安全要求。

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 11 天 点击查看活动详情