问题描述
我正根据此示例尝试为Android编写语音助手:
我不时需要关闭语音识别以播放一些音频文件(因为我不希望它们被捕获)。第一轮一切正常,但是当我第二次尝试启动语音识别时,出现以下错误:
W/System.err: java.lang.NullPointerException: Attempt to invoke virtual method 'void java.lang.ThreadGroup.addUnstarted()' on a null object reference
at java.lang.Thread.init(Thread.java:411)
at java.lang.Thread.<init>(Thread.java:469)
at com.vivai.de.vivaivoice.tools.tools.continuous.speechRecognition.AudioRecorder.start(AudioRecorder.java:96)
at com.vivai.de.vivaivoice.tools.tools.continuous.AudioServiceManager.recordAudio(AudioServiceManager.java:174)
at com.vivai.de.vivaivoice.tools.tools.continuous.AudioServiceManager.run(AudioServiceManager.java:123)
at java.lang.Thread.run(Thread.java:776)
以下几行会产生错误。调用new Thread()时将引发该事件。
public void start() {
// Stop recording if it is currently ongoing.
stop();
// Try to create a new recording session.
mAudioRecord = createAudioRecord();
if (mAudioRecord == null) {
throw new RuntimeException("Cannot instantiate VoiceRecorder");
}
// Start recording.
mAudioRecord.startRecording();
// Start processing the captured audio.
ProcessVoice processVoice = new ProcessVoice();
mThread = new Thread(processVoice);
mThread.start();
Log.i(TAG,"started");
}
我认为引发了错误,因为它不想执行相同的Thread / Runnable两次,但是我创建了一个新的Hole对象,因此应该不成问题?我已经尝试编写一个包装类,从该包装类创建一个新对象,但这也没有帮助。 是否有人知道如何处理该问题或如何绕过? 预先感谢您的帮助。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)