android - 结果的启动 Activity 获取空指针异常

标签 android android-activity

我将语音功能放入一个名为 voiceAssistants 的新类中,但是,当我启动它时,它总是给我一个空指针异常错误。

语音助手:

public class VoiceAssistants {
    private static final int VOICE_RECOGNITION_REQUEST_CODE = 1234;
    private static VoiceActivityHelper voiceAssistants;
    public VoiceAssistants(){
        voiceAssistants = new VoiceActivityHelper();
    }
    /**
     * Start voice input
     */
    public void starVoiceAssistants(){
        this.voiceAssistants.startVoiceRecognitionActivity();
    }

    private static class VoiceActivityHelper extends Activity {

        private static ArrayList<String> matches;

        public ArrayList<String> getResultSet(){
            return matches;
        }

        private void startVoiceRecognitionActivity() {
            Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
        intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
                RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
        intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, String.format(
                "%s_%s", Locale.getDefault().getLanguage(), Locale
                        .getDefault().getCountry()));
        intent.putExtra(RecognizerIntent.EXTRA_PROMPT,
                "Speech recognition demo");
                        //error happen here!!!
            startActivityForResult(intent, VOICE_RECOGNITION_REQUEST_CODE);
        }
    }
}

但是当我把它放到新项目生成的正常 Activity 中时,它不会报任何错误。 日志信息:

E/AndroidRuntime(22769): java.lang.NullPointerException
E/AndroidRuntime(22769):
at android.app.Activity.startActivityForResult(Activity.java:2827)
E/AndroidRuntime(22769):    
at panda.com.db.VoiceAssistants$VoiceActivityHelper.startVoiceRecognitionActivity(VoiceAssistants.java:56)
E/AndroidRuntime(22769):    
at panda.com.db.VoiceAssistants$VoiceActivityHelper.access$1(VoiceAssistants.java:47)
E/AndroidRuntime(22769):    
at panda.com.db.VoiceAssistants.starVoiceAssistants(VoiceAssistants.java:24)

请帮忙,谢谢!!

最佳答案

您正在调用 startActivityForResult() 但这不是一个 Activity。您的 Activity 是一个其他人无法访问的私有(private)内部类。

关于android - 结果的启动 Activity 获取空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9739555/

相关文章:

android - 如何访问android中的目录列表

android - 不使用 Intent 的摄像机录像机源

android - View 模型 : Check if fragment is resume or stop

Android Activity 生命周期 : restoring app after kill - design problem

android - 如何在 Activity 重新启动时保留复杂对象?

java - 使用后退按钮关闭 Activity 后恢复 Activity

java - 使图像不出现在 Android 相册中

运行 Maven Android 项目时 AndroidManifest.xml 文件丢失错误

android - 如何将buttonView从原来的位置移动到Android中的新位置?

java - 调整 fragment 的尺寸