flutter开发ios17出现name = 'io.flutter.1.raster', stop reason = signal SIGABRT崩溃的解决方法

1. 问题描述

  • 为了适应ios上架要求,我们项目升级了flutter升级到3.19.6的,但是莫名其妙出现了这个崩溃,最关键的是没有关键的崩溃日志,不管是flutter侧还是ios原生侧都看不出哪行代码引起的

2. 问题排查

  • 首先,通过崩溃日志的关键字'io.flutter.1.raster',其实的raster就是光栅化的意思,懂点opengl知识的都知道,光栅化就是和ui相关的
  • 再加上因为我们的项目出现的情况就是只有那一个页面有问题,所以我们使用二分排除法。。
  • 先注掉页面部分内容,看看是否崩溃,然后一步步缩小范围
  • 最后确定了是RoundSliderThumbShape组件的问题,具体就是这段代码的const RoundSliderThumbShape(enabledThumbRadius: 0)的enabledThumbRadius为0导致的

3. 解决问题

  • 知道了哪段代码导致的问题,解决起来就好办了。enabledThumbRadius为0导致的,估计了内部有除法操作导致的除0异常??
  • 不能使用0又不想让它出现,那就是给它足够小0.001吧,最后改为const RoundSliderThumbShape(enabledThumbRadius: 0.001) 解决了问题。在此记录一下方便后续查找,其他类似问题也可以类似这样解决。
posted @ 2024-05-14 18:02  yongfengnice  阅读(53)  评论(0编辑  收藏  举报