Flutter--Error: Cannot run with sound null safety, because the following dependencies don't support null safety
10年积累的成都做网站、成都网站建设、成都外贸网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先做网站后付款的网站建设流程,更有和静免费网站建设让你可以放心的选择与我们合作。
flutter sdk提示不是支持 null safety模式
解决方法
1:
在Android Studio中
Run -- Edit Configurations -- Add Additional Run args -- --no-sound-null-safety
2:
flutter run --no-sound-null-safety
flutter build apk --no-sound-null-safety
flutter的命令失效, 提示 zsh: command not found: flutter
解决办法:
1 、执行:【open ~/.zshrc 】
2、如果 提示文件不存在,则执行:【vim ~/.zshrc 】新建一个新文件
3、新建窗口再执行【open ~/.bash_profile 】
4、把 打开的bash_profile 中的内容copy到 上一个窗口新建的zshrc 文件中,保存:
【:wq回车】
5、再使用source命令重新加载一下:【source ~/.zshrc】,下次再编辑这个文件就可以直接执行:【open ~/.zshrc】
6、运行【flutter -h 】看是否生效
在耗时操作的时候,一般都要弹出一个加载框,然后在完成的时候再把加载框关掉,在Flutter中可以直接用showDialog()来弹出一个对话框。
这是一个简单的提示对话框,包含了关闭按钮,点击就能关闭。但一般的耗时操作完成,就需要我们自己把dialog关闭掉。
首先,开启dialog的时机。由于我们需要获取到BuildContext,所以就得等build()方法走完,这里可以用Future.delayed()来等创建好BuildContext再进行创建,或者用Timer来延迟操作,我选择了前者。
其中delayed()在initState()结尾来做就行,这里参考网友封装了一个LoadingDialog。
那么接下来要在什么时机关闭呢?
一开始,我理所当然的以为,是在异步方法结束后,去更新界面的时候关闭,也就是setState(() {})的时候,可是不管怎么尝试,用Navigator.pop()不行,用Navigator.of(context, rootNavigator: true).pop(result)也不行,用FlutterBoost.singleton.close(id)也不行,用FlutterBoost.singleton.closeCurrent()也不行,都会直接把非Dialog的页面也关闭掉,这让我百思不得其解,因为showDialog()的本质也是新建了一个Route出来,也就是最顶层的页面是弹出的Dialog,可是为什么关不掉呢。
一番思前想后,把showDialog的逻辑移到和异步逻辑同级,也就是setState(() {})外面,然后把showDialog()自身创建的BuildContext传进去就能正常关闭了。也就是,在setState(() {})的时候,其实用的context还是非Dialog页面的,所以关闭的当然就不是Dialog了。
持有Dialog自己的BuildContext,然后在异步以后调用就行了。
一般这样的问题都是Flutter内部导致的问题,所以优先建议命令执行:flutter clean,然后再次执行操作。
需要在命令行操作
但是我查出来的并没有我的包名
6.成功了,现在在安装APP,就ok了
新手最近在使用Getx做状态管理, 在使用中遇到问题, 随手记录下,
提示错误:
GET the improper use of a getx has been detected you should only use getx or obx for the specific widget that will be updated. if you are seeing this error, you probabaly did not insert any observable variables into GetX/Obx...
其实提示很明显, 就是Obx()中组件没用到controller内容, 比如Obx(()=Text("123")), 这里面Obx没有用到GetxController的对象, 就会报这个错误,如果改成Obx(()=Text(controller.content)), 就可以了