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

Android 文本到语音-空指针异常,android,exception,pointers,null,text-to-speech,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 Inte

我创建了一个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);
。。。您已经展示了如何使用变量:

private TextToSpeech tts;
tts.speak(s, TextToSpeech.QUEUE_FLUSH, null);
。。。但是你有没有初始化过这个变量?如果不给它赋值,它将始终具有默认值
null
。从您需要这样的东西来判断(我假设您的代码位于
活动中
):

您已经展示了如何声明变量:

private TextToSpeech tts;
tts.speak(s, TextToSpeech.QUEUE_FLUSH, null);
。。。您已经展示了如何使用变量:

private TextToSpeech tts;
tts.speak(s, TextToSpeech.QUEUE_FLUSH, null);
。。。但是你有没有初始化过这个变量?如果不给它赋值,它将始终具有默认值
null
。从您需要这样的东西来判断(我假设您的代码位于
活动中
):


是的,您猜对了,tts正在作为一项活动实施。谢谢,我没有初始化变量。我今天就去试试。顺便说一句,代码在没有初始化的情况下独立工作。谢谢。现在我没有得到异常,但是引擎没有播放任何东西。@user1576339:你已经彻底阅读了我链接到的教程了吗?(我不确定你所说的“代码在没有初始化的情况下独立工作”是什么意思-如果你在空引用上调用一个方法,你会得到一个异常…)嗨,我读了来自Yes的教程,你猜对了,tts是作为一个活动实现的。谢谢,我没有初始化变量。我今天就去试试。顺便说一句,代码在没有初始化的情况下独立工作。谢谢。现在我没有得到异常,但是引擎没有播放任何东西。@user1576339:你已经彻底阅读了我链接到的教程了吗?(我不确定你所说的“代码在没有初始化的情况下独立工作”是什么意思-如果你在空引用上调用一个方法,你会得到一个异常…)嗨,我从