Flutter Windows使用just_audio报MissingPluginException错误如何解决?
问题触发原因
- just_audio核心包本身不包含Windows平台的原生方法实现,你没有额外引入Windows端的适配扩展包,导致方法通道没有对应的实现类,调用原生方法时抛出找不到实现的异常。
- 即使引入了适配包,没有执行全量重新编译,插件的注册逻辑没有被打包进应用,也会触发该异常。
- 你提供的示例代码存在变量大小写笔误,
_player变量被误写为_Player,也可能导致执行流程异常。
解决方案
- 补充引入Windows端适配包
在pubspec.yaml的dependencies节点下添加just_audio的Windows扩展依赖,不清楚兼容版本可以直接使用两者的最新稳定版即可:
dependencies: flutter: sdk: flutter just_audio: ^最新稳定版本号 just_audio_windows: ^最新稳定版本号
- 执行全量重编译
在项目根目录依次执行以下命令:
flutter clean flutter pub get
命令执行完成后完全关闭当前运行的应用,重新执行flutter run -d windows启动项目,不要使用热重载、热重启,插件注册的变更必须全量编译才能生效。
3. 修正代码错误
将你_init方法里的变量名调整为正确的小写开头:
Future<void> _init() async { await _player.setFilePath('C:/Users/Admin/Downloads/test.wav', preload: true); }
- 可选:优化路径写法
为了避免不同平台的路径分隔符问题,建议使用path库来拼接Windows路径,使用前先在pubspec中引入path依赖即可,示例写法:
import 'package:path/path.dart' as path; // 拼接路径 final audioPath = path.join('C:', 'Users', 'Admin', 'Downloads', 'test.wav'); await _player.setFilePath(audioPath, preload: true);
内容的提问来源于stack exchange,提问作者Sadikul Haque Sadi
相关产品推荐
相关产品推荐

