안녕하세요. 안드로이드 개발자입니다.
음성 합성은 다른 라이브러리를 이용하고 음성 합성만 이용하기 위해 개발자 가이드를 참고하여 코딩을 하였습니다.
그런데 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(); 가 맞지 않나 조심스레 추측해봅니다.
라이브러리 구현 시 혹시 의도하신 부분인지 문의드립니다.
감사합니다.