flutter_slidable的报错问题记录

声明:作者声明此文章为原创,未经作者同意,请勿转载,若转载,务必注明本站出处,本平台保留追究侵权法律责任的权利。
全栈老韩
全栈工程师,擅长iOS App开发、前端(vue、react、nuxt、小程序&Taro)开发、Flutter、React Native、后端(midwayjs、golang、express、koa)开发、docker容器、seo优化等。

问题

工程引入了flutter_slidable库,但是随着工程升级,flutter_slider的新版本遇到编译问题,如下截图:
flutter报错截图

Error (Xcode): Invaid depfile: /Users/edy/Desktop/xxxx/.dart_tool/flutter_build/1c028f2d1b282d28c0bd6c81c174182a/kernel_snapshot_program.d

Could not build the application for the simulator.
Error launching application on iPhone XR.

从截图中看不出具体,所以需要使用Xcode跑一下iOS工程,以便查处问题所在:
flutter ios工程编译

从xcode中可以看出是flutter_slider这个库出现了问题。

解决方式

首先通过代码的git变动记录,可以看出flutter_slidable这个库的版本在编译报错前后是出现了版本号变化的,如果你从pubspec.yaml中看不出来,可以查看pubspec.lock中的变化。

通过在GitHub上:https://github.com/letsar/flutter_slidable,在issue中可以看到也有人反馈了相同问题:
https://github.com/letsar/flutter_slidable/issues/488

问题出在,flutter_slidable的3.0.1到最新版本3.1.1,有变量未被定义,无法识别,引入tag的版本无法解决。但是master分支上已经有修复了,所以需要修改flutter_slidable的引入指向问题。
所以做以下改动

  provider: ^6.1.2
#  flutter_slidable: ^3.0.1
  flutter_slidable:
      git:
        url: https://github.com/letsar/flutter_slidable.git
        ref: master
  pull_to_refresh: ^2.0.0

然后执行flutter pub get更新依赖。

问题解决。

其他

如果存在缓存问题,可以clean一下工程

flutter clean
评论列表
全栈老韩·
补充一下,报错是:Error (Xcode): ../../../../../../../.pub-cache/hosted/pub.flutter-io.cn/flutter_slidable-3.1.1/lib/src/notifications_old.dart:88:23: Error: The method 'hashValues' isn't defined for the class 'SlidableRatioNotification'. Could not build the application for the simulator. Error launching application on iPhone Xʀ.