Unhandled Exception: MissingPluginException(No implementation found for method data on channel plugins.justsoft.xyz/....

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

问题

Unhandled Exception: MissingPluginException(No implementation found for method data on channel plugins.justsoft.xyz/video_thumbnail)

在flutter项目中使用了video_thumbnail来获取视频第一帧图片作为显示的图片,但是在控制台出现了如上的报错。

更详细的信息被hot refresh掉了,所以这里没能及时截图。

问题排查

从控制台的信息中,说是method channel调用“data”这个方法出错,所以一开始怀疑是video_thumbnail这个库的问题,但是根据 https://pub.dev/packages/video_thumbnail 这里面的版本号,我本地的版本号已经是最新的0.5.3.

虽然我从GitHub上有找到类似的issue:https://github.com/justsoft/video_thumbnail/issues/77,但是报错的method channel不一样,所以我直接去检查是不是plugin中确实没有实现data这个method。

直接去Android studio中的Flutter Plugins中去查找一下
Flutter Plugins Directory

找到video_thumbnail
video_thumbnail data method

从上面的截图中就可以看出,这个data的method channel是存在的,那么初步判断video_thumbnail是没有问题的。

所以有理由怀疑是pub cache出了问题,先清理一下pub cache:

terminal 复制代码
 flutter pub cache clean

然后

terminal 复制代码
flutter pub get

重新运行,选择视频,进行app内的发送逻辑,查看是否视频的第一帧显示是否有问题,以及控制台是否还有报错。

经过运行,发现问题已经没有了。

在这种情况下,我分析我的问题出现在,我之前一直运行flutter跑的是iOS的模拟器下,是没有问题的,但是我运行到Android模拟器上时,虽然视频第一帧图片显示没有问题,但是控制台就是会有这样的报错,那么有可能是之前在跑iOS的情况下,video_thumbnail pub cache中没有Android的method channel。

以上。

暂无评论,快来发表第一条评论吧