Expo项目Android开发/模拟器模式下expo-speech报错求助
解决Expo Android开发环境下expo-speech的
maxSpeechInputLength未定义报错 针对你遇到的仅Android开发/模拟器模式下出现TypeError: Cannot read property 'maxSpeechInputLength' of undefined报错(生产环境正常),可以按以下步骤排查:
清除开发环境缓存
开发环境的缓存可能导致expo-speech的Native模块未正确加载,执行:npx expo start --clear同时重启Android模拟器,或者在模拟器中清除应用数据。
确保Speech模块初始化完成后再调用
开发环境中模块加载速度可能慢于生产,建议在调用语音功能前先检查模块可用性:import * as Speech from 'expo-speech'; const speak = async (text) => { const isAvailable = await Speech.isAvailableAsync(); if (isAvailable) { await Speech.speak(text); } };重置依赖并调整expo-speech版本
先恢复被修改的node_modules,重新安装依赖:rm -rf node_modules package-lock.json npm install然后尝试调整expo-speech版本,Expo 48兼容的稳定版本可以尝试锁定
11.1.0:npm install expo-speech@11.1.0重新构建dev-client
由于使用了expo-dev-client,开发环境的Native构建可能存在缓存问题,执行:npx expo prebuild --clean npx expo run:android
内容的提问来源于stack exchange,提问作者Azael Contramaestre
相关产品推荐
相关产品推荐

