android - 文本到语音 - 空指针异常

标签 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注册。

请帮助我调试问题。

提前致谢。

最佳答案

您已经展示了声明变量:

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);
    ...
}

关于android - 文本到语音 - 空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11819229/

相关文章:

c++ - 链接到 MFC 项目的没有 mfc 的 C++ 静态库是否抛出 bad_alloc 或 CMemoryException*?

c - OpenCL。数组寻址/指针的奇怪错误

c - 指向指针的指针

C 自由和结构

java - 如何识别 editText 文本中的换行符?

android - 在启动画面期间加载 MainActivity

java - 以编程方式构建约束布局

android - 如何导出结构体成员

java - try,catch,finally的执行顺序是什么

Java % 符号转换失败