안드로이드 음성 합성(뉴톤톡) 단독 사용 시 crash 발생

안녕하세요. 안드로이드 개발자입니다.
음성 합성은 다른 라이브러리를 이용하고 음성 합성만 이용하기 위해 개발자 가이드를 참고하여 코딩을 하였습니다.

그런데 TextToSpeechClient 클래스에 있는 play() 메서드 호출 시 앱이 crash가 발생하네요.
로그는 아래과 같습니다.

java.lang.NullPointerException: Attempt to invoke virtual method ‘android.content.pm.PackageManager android.content.Context.getPackageManager()’ on a null object reference
at com.kakao.util.helper.Utility.getMetadata(Utility.java:102)
at com.kakao.sdk.newtoneapi.TextToSpeechClient.play(TextToSpeechClient.java:351)
at com.kakao.sdk.newtoneapi.TextToSpeechClient.play(TextToSpeechClient.java:384)
at com.inaviair.adapter.ai.AISpeechManager.createSpeechFromText(AISpeechManager.java:171)
at com.inaviair.common.component.popup.ai.NaviAIDialog.onAIAgentResponse(NaviAIDialog.java:507)
at com.inaviair.adapter.ai.AIAgentManager$1.onPostExecute(AIAgentManager.java:88)
at com.inaviair.adapter.ai.AIAgentManager$1.onPostExecute(AIAgentManager.java:69)
at android.os.AsyncTask.finish(AsyncTask.java:632)
at android.os.AsyncTask.access$600(AsyncTask.java:177)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:645)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:6117)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)

로그 내용을 추적해보니, TextToSpeechClient.java의 346라인에 (6.0.1버전 기준)
Context appContext = SpeechRecognizerManager.getInstance().getApplicationContext();
이렇게 되어있는데,
TextToSpeechManager.getInstance.getApplicationContext(); 가 맞지 않나 조심스레 추측해봅니다.

라이브러리 구현 시 혹시 의도하신 부분인지 문의드립니다.
감사합니다.

1개의 좋아요

안녕하세요. 이 에러 해결 하셨나요? 저도 간단히 만들어 실행하고 버튼 눌러보면 이런 에러가 나고 앱이 죽어 버리는데요.
어떻게 해결하셨는지 궁금합니다.

이문제는 해결 했습니다. 음성합성이라고 음성합성용 초기화 코드만 넣어 주고 하면 발생하더군요.
음성인식 초기화 코드를 넣어 주고 하니 에러는 사라졌습니다. 왜 그런지 모르겠지만… 음성합성만 하겠다는 데…ㅎ
암튼 혹시 다른 분들 참고 해보세요.

2개의 좋아요