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

Flutter运行报checkPlatformOverride错误 接入speech_to_text后启动崩溃

可行解决思路

你遇到的报错属于表层日志,底层触发原因通常是语音识别相关的权限缺失、初始化逻辑异常或者运行环境不兼容,按以下顺序排查即可:

1. 补全对应平台的权限配置

这是该包最常见的崩溃诱因,两类平台都需要单独配置权限:

  • Android端:打开android/app/src/main/AndroidManifest.xml文件,在manifest标签下添加以下权限声明:
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.INTERNET" />
    
    同时打开android/app/build.gradle,把minSdkVersion调整为21及以上,该包不支持21以下的安卓版本。
  • iOS端:打开ios/Runner/Info.plist文件,在dict标签下添加权限说明:
    <key>NSMicrophoneUsageDescription</key>
    <string>需要使用麦克风进行语音输入</string>
    <key>NSSpeechRecognitionUsageDescription</key>
    <string>需要使用语音识别能力转换语音内容</string>
    

2. 修正语音服务调用逻辑

你当前的逻辑缺少状态校验,初始化失败、重复调用监听接口都会触发崩溃,修改activateStt方法如下:

//this is called once the speech button is pressed
activateStt() async {
  // 未初始化成功先重试初始化
  if (!_speechEnabled) {
    _speechEnabled = await _speechToText.initialize();
    if (!_speechEnabled) return;
  }
  // 正在监听时点击就停止监听,避免重复调用
  if (_speechToText.isListening) {
    await _speechToText.stop();
  } else {
    await _speechToText.listen(onResult: _onSpeechResult);
  }
  setState(() {});
}

3. 排查运行环境兼容问题

  • 大部分安卓模拟器默认未内置语音识别服务,直接运行会崩溃,建议先使用真机测试,如果一定要用模拟器需要手动安装Google语音服务套件
  • 确认pubspec.yaml中引入的speech_to_text版本和你的Flutter版本兼容,Flutter 3.0及以上版本建议使用该包6.0以上的稳定版
  • 所有配置修改完成后,再次执行flutter clean + flutter pub get重新构建项目即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 14:21:00