You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter shake插件异常及依赖版本冲突问题求解

Flutter shake插件版本冲突与MissingPluginException解决最优方案

问题回顾

在Flutter应用中引入shake 2.2.0插件后,启动时频繁抛出:

MissingPluginException: No implementation found for method setAccelerationSamplingPeriod on channel dev.fluttercommunity.plus/sensors/method

按照建议添加sensors_plus ^4.0.2依赖后,出现版本冲突:

Because shake 2.2.0 depends on sensors_plus ^1.4.1 and no versions of shake match >2.2.0 <3.0.0, shake ^2.2.0 requires sensors_plus ^1.4.1.
So, because dice depends on both shake ^2.2.0 and sensors_plus ^4.0.2, version solving failed.

以下是不同场景下的最优解决方案:


方案1:优先升级shake插件到兼容高版本sensors_plus的版本

查看shake插件的最新版本,若存在3.x及以上版本(已兼容sensors_plus 4.x),直接修改pubspec.yaml中shake的版本约束,例如:

dependencies:
  shake: ^3.0.0 # 以实际兼容版本为准
  sensors_plus: ^4.0.2

执行flutter pub get即可。
优势:遵循官方版本依赖规范,无潜在兼容性风险,是最理想的解决方式。

方案2:降级sensors_plus到shake依赖的版本

如果不需要sensors_plus 4.x的新功能,直接降级到shake要求的版本:
执行命令:

flutter pub add sensors_plus:^1.4.1

优势:操作简单,完全避免版本冲突,无额外风险,适合对sensors_plus版本无特殊需求的场景。

方案3:使用dependency_overrides强制指定sensors_plus版本

仅当必须保留shake 2.2.0且需要sensors_plus 4.x的功能时,才采用此方案。在pubspec.yaml中添加:

dependency_overrides:
  sensors_plus: ^4.0.2

执行flutter pub get后,务必全面测试shake插件的核心功能(比如摇一摇触发逻辑),确认无API兼容问题。
注意:该方式会强制覆盖依赖版本,可能因shake与高版本sensors_plus的API差异导致隐藏bug,属于临时 workaround,不推荐长期使用。


内容的提问来源于stack exchange,提问作者Anson Savage

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 12:03:25