实例化一个新的TextToSpeech会产生NullPointer异常

时间:2018-05-31 09:03:02

标签: java android nullpointerexception

我是Android开发中的菜鸟。

我正在使用TextToSpeech,它在几个平台上运行良好,除了一个特定的手机(运行android 4.4.2)。

TTS的实例化给出了空指针异常:

private TextToSpeech mTTS;
// ...
mTTS = new TextToSpeech(this, mTTSInitListener); 

使用的Sdk版本是指定的最小值:19(据我所知,TTS是在API级别4中添加的(因此是Android 1.6)

android {
    compileSdkVersion 21
    buildToolsVersion '27.0.3'

    defaultConfig {
        minSdkVersion 19
        targetSdkVersion 21
        applicationId "myapp"
        versionCode 73
        versionName "1.1.0"

问题是:什么可以使TTS不可用/不可实例化?

THX

1 个答案:

答案 0 :(得分:0)

首先,您应该检查设备是否能够使用TTS。 如下代码:

Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
                            intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, "en-US");
                            try {
                                startActivityForResult(intent, Constant.SEARCH_VOICE);
                                overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
                            } catch (ActivityNotFoundException a) {
                                Toast t = Toast.makeText(mContext, getResources().getString(R.string.speech_error), Toast.LENGTH_SHORT);
                                t.show();
                            }