начало действия для результата получает исключение нулевого указателя - PullRequest
1 голос
/ 16 марта 2012

Я помещаю речевую функцию в новый класс под названием voiceAssistants, однако, когда я ее запускаю, она всегда выдает мне ошибку исключения нулевого указателя.

voice Assistants:

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

Нокогда я включаю его в обычную активность, генерируемую новым проектом, она не выдает никакой ошибки.лог инфо:

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)

помогите плз, спасибо !!

1 Ответ

1 голос
/ 16 марта 2012

Вы звоните startActivityForResult(), но это не Activity.Ваш Activity - это закрытый внутренний класс, к которому никто другой не имеет доступа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...