无法使用 react-native-voice 包
2020-12-17
1418
我正在尝试使用 react-native-voice 包。在我的项目中,按下按钮时,我正在调用 Voice.start('en-US') 方法。但它显示以下错误,
Possible Unhandled Promise Rejection(id: 0):
TypeError: null is not an object (evaluating 'Voice.startSpeech')
我已经自动和手动链接了该包。但它没有起作用
旁注:我使用 expo pop 弹出了 expo 管理工作流中的项目
2个回答
正如您在 文档 中看到的那样,他们在构造函数中有 init Voice
试试这个
constructor(props) {
Voice.onSpeechStart = this.onSpeechStartHandler.bind(this);
Voice.onSpeechEnd = this.onSpeechEndHandler.bind(this);
Voice.onSpeechResults = this.onSpeechResultsHandler.bind(this);
}
onSpeechStartHandler = () => {}
onSpeechEndHandler = () => {}
onSpeechResultsHandler = () => {}
onStartButtonPress(e){
Voice.start('en-US');
}
还要检查权限
Mehran Khan
2020-12-17
我在使用 react-native-voice 包开发 React Native 应用时遇到了同样的问题。我按照工作流程的每一步进行操作,似乎没有任何问题。
expo run:android
构建成功。然后我的 android 模拟器/物理设备上的
expo start --dev-client
都抛出了这个错误:
[Unhandled promise rejection: TypeError: null is not an object (evaluating 'Voice.isSpeechAvailable')]
最后,我发现,需要在 vscode 中打开两个终端,一个终端运行
exp start
(同时连接到您的设备),另一个终端同时运行
expo run:android
。
然后应用程序就可以在设备上运行了! 希望这对您有所帮助,并希望有人可以就 react-native/expo 测试开发的工作原理进行更多解释?
Ingch
2022-05-17