Я получаю отчет об исключении нулевого указателя в консоли разработчика Android. Мне нужно несколько советов относительно того, в чем, возможно, проблема здесь, трассировка стека выглядит так
java.lang.NullPointerException
at com.myfreeapp.workers.Speaker.onInit(Speaker.java:57)
at android.speech.tts.TextToSpeech$1.onServiceConnected(TextToSpeech.java:451)
at android.app.ActivityThread$PackageInfo$ServiceDispatcher.doConnected(ActivityThread.java:1247)
at android.app.ActivityThread$PackageInfo$ServiceDispatcher$RunConnection.run(ActivityThread.java:1264)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4668)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:878)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:636)
at dalvik.system.NativeStart.main(Native Method)
Соответствующий фрагмент кода в моем приложении
public Speaker(final Context context, final Settings settings)
{
this.settings = settings;
params = new HashMap<String, String>();
params.put(TextToSpeech.Engine.KEY_PARAM_STREAM, String.valueOf(AudioManager.STREAM_ALARM));
params.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, "myfreeapps");
tts= new TextToSpeech(context, this);
Utils.log(TAG, "Created TextToSpeech..");
}
@Override
public void onInit(final int status)
{
Utils.log(TAG, "TTS onInit..");
//below is line 57 mentioned in the stack trace
tts.setOnUtteranceCompletedListener(new SpeechFinishedListener());
tts.setLanguage(Locale.getDefault());
tts.setSpeechRate(settings.getSpeed());
tts.setPitch(settings.getPitch());
ready = true;
}
Пожалуйста, прежде всего мне нужно уточнить, что именно является нулевым ..
Трассировка стека, указывающая на переменную tts в строке 57, является нулевой? ..
Или исключение нулевого указателя происходит внутри метода TextToSpeech setOnUtteranceCompletedListener?
Экземпляр Speaker создается в главном потоке в липком сервисе, и когда я отлаживаю свой код, обратный вызов из TextToSpeech также возвращается в тот же поток ..
Я не понимаю, как переменная tts может быть нулевой ???
Кстати, эта проблема не воспроизводится с моей стороны. У меня несколько раз сообщалось об этом стеке на консоли разработчика.
Пожалуйста, сообщите,