2012-08-05 6 views
1

TTS 모듈을 만들었습니다. 혼자서 완벽하게 작동하지만 내 프로젝트의 클래스로 구현하려고 시도했을 때 오작동하고 null 포인터 예외가 발생합니다.음성으로 텍스트 - 널 포인터 예외

1)/입술/원시 폴더에서 텍스트 파일을 읽어

내가 달성하기 위해 어떤 계획. 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 등록 게시물이 없습니다.

문제를 디버깅하는 데 도움을주십시오.

미리 감사드립니다.

답변

1

당신은 변수 선언 을 표시했습니다

private TextToSpeech tts; 

을 ... 당신은 변수 사용 을 표시했습니다

tts.speak(s, TextToSpeech.QUEUE_FLUSH, null); 

을 ...하지만 적을 변수을 초기화 하시겠습니까? 값을 지정하지 않으면 항상 기본값 인 null이됩니다. this tutorial으로 판단하면 (내가 당신의 코드가 Activity에 있으리라 믿고있어)이 같은 뭔가가 필요 :

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    ... 
    tts = new TextToSpeech(this, this); 
    ... 
} 
+0

예는, 당신이 올바른 추측의 TTS는 활동으로 구현되고있다. 감사합니다. 변수를 초기화하지 않았습니다. 오늘 그것을 시도 할 것이다. BTW 코드는 초기화없이 독립 실행 형으로 작동했습니다. – user1576339

+0

감사합니다. 지금 나는 예외를 지금 얻지 않는다. 그러나 엔진은 아무것도하지 않는다. – user1576339

+1

@ user1576339 : 완전히 연계 된 튜토리얼을 읽었습니까? (나는 당신이 "코드가 초기화없이 독립 실행 형으로 작동했는지"에 대해 모르겠다. null 참조에서 메서드를 호출하면 예외가 발생한다 ...) –