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)
解决了问题。在此记录一下方便后续查找,其他类似问题也可以类似这样解决。