文本到语音 - 空指针异常

时间:2012-08-05 19:04:43

标签: android exception pointers null text-to-speech

我创建了一个TTS模块。它在一个独立的基础上完美地工作,但当我尝试将它作为我的项目的类实现时,它行为错误并抛出空指针异常。

我打算实现的目标:

1)从/ res / raw文件夹中读取文本文件。 2)通过TTS将文本文件转换为语音。字符串s通过BufferReader类捕获了整个文件。

我用于TTS的代码是 -

private TextToSpeech tts;
tts.speak(s, TextToSpeech.QUEUE_FLUSH, null);
Intent checkIntent = new Intent();
checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
    startActivityForResult(checkIntent, MY_DATA_CHECK_CODE);

错误出现在tts.speak .....行。我通过在整个代码中添加log.d找到了这一行。上面的tts.speak代码没有log.d注册。

请帮我调试问题。

提前感谢。

1 个答案:

答案 0 :(得分:1)

您已经显示声明变量:

private TextToSpeech tts;

...你已经使用变量显示了

tts.speak(s, TextToSpeech.QUEUE_FLUSH, null);

...但你有没有初始化变量?如果您没有为其赋值,则它将始终具有默认值null。从this tutorial判断你需要这样的东西(我假设你的代码在Activity中):

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ...
    tts = new TextToSpeech(this, this);
    ...
}