那些年踩过的Flutter升级的坑
2023-12-20 12:08:26
Flutter v1.12.13 的一些坑
最近忙着升级Flutter SDK版本,遇到了一些问题,于是记录下来。
问题 1:Flutter默认开启bitcode
因为某些问题,现存的iOS项目无法开启bitcode,但是v1.12.13中Flutter默认开启了这个,并且引擎也是enable bitcode了的。这个会导致整个项目无法编译成功。网上到处搜索了下,没有找到解决办法。
最终,只能先把Flutter SDK降级到v1.12.13+hotfix.9,再把引擎的enable bitcode关掉。
问题 2:项目中包含嵌套的ListView时下拉刷新失效
这个问题也是老生常谈了。Flutter本身对嵌套滚动的支持一直都不太好,这个问题在v1.12.13中仍然存在。
如果项目中包含嵌套的ListView,则下拉刷新功能可能会失效。这是因为Flutter在处理嵌套滚动时,会把外层的ListView的滚动事件传递给内层的ListView,导致内层的ListView无法正常响应下拉刷新事件。
这个问题的解决办法是使用第三方库,比如nested_scroll_view。
问题 3:Flutter图标库升级后图标显示异常
Flutter的图标库在v1.12.13中进行了升级,导致一些图标的显示出现了异常。
这个问题的原因是Flutter在v1.12.13中将图标库的格式从SVG改成了WOFF2。WOFF2是一种新的字体格式,它比SVG更小、更有效率。但是,WOFF2并不被所有的设备支持。
如果你的设备不支持WOFF2,则你可能会看到图标显示异常。这个问题的解决办法是将图标库的格式从WOFF2改回SVG。
问题 4:Flutter引擎的Dart DevTools服务无法启动
这个问题也是老生常谈了。Flutter引擎的Dart DevTools服务在v1.12.13中仍然存在无法启动的问题。
这个问题的原因是Dart DevTools服务使用了WebSockets,而WebSockets在某些情况下可能会无法正常工作。
这个问题的解决办法是手动启动Dart DevTools服务。具体方法是:
- 打开终端。
- 进入Flutter SDK的bin目录。
- 运行以下命令:
dart devtools
问题 5:Flutter项目无法运行在真机上
这个问题也比较常见。Flutter项目在真机上运行时,可能会出现各种各样的问题。
这些问题的原因可能是多种多样的,比如:
- 真机与开发机之间的网络连接出现问题。
- 真机的系统版本过低。
- 真机的硬件配置过低。
- Flutter SDK的版本与真机的系统版本不兼容。
这个问题的解决办法是逐一排查问题的原因,然后针对性地解决。
总结
以上就是我在升级Flutter SDK版本时遇到的部分问题。希望这些经验能对你有帮助。
如果你在使用Flutter时遇到其他问题,也可以在评论区留言,我会尽量解答。