Почему TextToSpeech.getLanguage () * иногда * возвращает null?

В моем приложении я вызываю TextToSpeech.getLanguage () хорошо после создания экземпляра TextToSpeech (~ 800 мс согласно LogCat), но иногда он (не всегда) возвращает нуль, несмотря на то, что язык установлен правильно в настройках TextToSpeech системы:

System Settings > Language & input > Text-to-speech output > Google Text-to-speech > English (United Kingdom) 

Это происходит только в Jelly Bean (Android 4.1.1 ). Это не происходит в Android 2.2.

Является ли это известной ошибкой Android? Или я делаю что-то неправильно?

Я создаю экземпляр, BTW, TextToSpeech в основной деятельности моего приложения с помощью:

 new TextToSpeech(this, this); 

И как экземпляр, так и вызов TextToSpeech.getLanguage () выполняются в одном потоке (таким образом, порядок вызовов гарантирован).

Вы должны вызвать getLanguage () в onInit (), иногда для вызова onInit () требуется несколько секунд.

Я также обнаружил эту ошибку сегодня на Asus TF700T под управлением Android 4.1.1. Я попытался решить проблему, вызвав getLanguage() снова, как предложил Eternal Learner в комментарии, но он все равно возвращает null, независимо от того, сколько раз я его называю.

Самое легкое обходное решение для меня состояло в том, чтобы отказаться от текущего сломанного экземпляра TextToSpeech и создать новый экземпляр. Второй экземпляр, похоже, работает надежно.