Android编程:ANDROID_CONTEXT参数未传递错误

时间:2015-10-20 19:01:31

标签: java android speech

我正在用执行TTS的Nuance SpeechKit编写应用程序。它需要将上下文(从getApplicationContext()调用)传递到某些函数中。不幸的是,我在日志中收到此错误:ANDROID_CONTEXT parameter is not passed in!!!

让我给出更多背景信息:在主要活动中,它会从按钮打开一个对话框。该对话框调用文本转语音功能。因此,我在主要活动中调用getApplicationContext(),并使用setter将其作为参数传递给我的DialogFragment。不幸的是,即使我打电话给安装人员,我也会收到此错误。那可能会出现什么问题?这里有一些代码:

在我的主要活动中:

// Instance variables...
private SpeechKit speechKit;
private Context context;

protected void onCreate(Bundle savedInstanceState) {
    ...
    context = getApplicationContext();
    ...
    this.speechKit = SpeechKit.initialize(context,
            "CORRECT_API_KEY",
            "sslsandbox.nmdp.nuancemobility.net",
            443,
            true,
            SpeechKitAPIKey);
    speechKit.connect();
}

public void invokeDialog() {
    ...
    dialogueFragment.setContext(context);
    dialogueFragment.setSpeechKit(speechKit);
    ... 
}

这是对话框片段的代码:

   public void setSpeechKit(SpeechKit speechKit) {
    this.speechKit = speechKit;
}

private SpeechKit speechKit;
private Context context;

public void setSpeechKit(SpeechKit speechKit) {
    this.speechKit = speechKit;
}

public void setContext(Context context) {
    this.context = context;
}

// Called when a button is pushed...
public void narrateText(String voice, String phrase) {
    Vocalizer vocalizer = speechKit.createVocalizerWithVoice(voice, this, handler);
    vocalizer.speakString(phrase, context);
}

现在我不知道为什么会调用这个错误。代码编译得很好。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,结果证明我的免费帐户已过期(持续90天)。

您可能会发送无效的登录信息。