美文网首页
2018-09-26

2018-09-26

作者: 原天袁 | 来源:发表于2020-09-19 18:30 被阅读0次

    flutter现学现卖,从昨天到今天一直在解决问题,幸好今天下午全部解决,记录下。另外之前做的事也违背了敏捷之道,在现在对flutter、移动开发技术不熟悉,但又急着上线的情况下,造成了不小的困扰,在这里有所感悟,记录警醒一下自己。

    昨天的第一个问题是,到中文时flutter run不了了,一直卡在flutter pub get命令上,我百度谷歌搜索问题,切换了很多源,又改了很多配置文件都不行,直到第二天早上下了一个新的版本,试了用科学上网的方式才解决了问题。有几点需要注意:
    1、有时候国内镜像确实不行,可以使用干净的配置文件(不把gradle源改成镜像),科学上网解决,包都更新且gradle都更新后,以后只要不动,flutter run就不用再走这些步骤。我常用的做法是,linux环境变量不配置永久的镜像地址,只配置临时地址,试了镜像不能用再科学上网。
    2、有时一次引入的包太多,flutter pub get太慢,又没有运行情况提示,这时就会误以为卡住。所以应该一个个包的更新。

    第二个问题是,flutter在进行iphone真机调试时,会卡在installing and launching,模拟器没问题。手机上安装的app可以打开,但是无法调试。在解决这个问题时,通过查阅大量资料,我才知道原来flutter有多个channel,以下是相关命令:
    flutter channel #查看有哪些渠道,当前在什么渠道


    image.png

    flutter channel master #切换到master渠道

    一般不要使用master和dev的渠道,因为它们是不稳定的,功能在开发中甚至还没测试过。例如我切到master后,app竟然很多编译不了了。
    然而,stable的也可能是有BUG的,我用的是stable渠道的1.20.3,出现了不能真机调试的问题。
    最终通过flutter upgrade命令,升级到了1.20.4,这个问题终于解决了。

    第三个问题是穿插在前两个问题中的。我看到一个flutter_wanandroid开源项目,里面有很多不错的util,写法也是bloc模式的,我就一股脑把这些特性和包全都搬了过来。这导致在解决前两个问题进行更新包和尝试不同flutter版本时,负重难堪,到处报错,我全删掉了只保留了功能正常的最简化版本。
    在我们实际解决问题时,特别是使用新技术时,应该牢记 简单、最小可行、敏捷迭代、提前试错、规避风险这些词,避免大而全实际上却没用。

    相关文章

      网友评论

          本文标题:2018-09-26

          本文链接:https://www.haomeiwen.com/subject/butjoftx.html