我的 TTS 在 Android Lollipop (21) 中不工作

My TTS is not working in Android Lollipop (21)

我已经为 Android 创建了一个基于 Flite 的 TTS 引擎,它适用于 21 以下的所有版本。

但是当我 运行 它在 Android Lollipop 模拟器中时,在文本到语音设置屏幕中,阅读示例文本的选项被禁用,当我按下设置按钮时在我的 TTS 旁边,设置崩溃了!但是,当从其他应用程序使用时,TTS 工作正常。

经过几个小时的努力,我终于发现在语音文件名中使用的语言环境名称(如fas-IRN-male_odj)中使用下划线(_)混淆了Android并且它无法从中解析语言、国家和变体部分。

似乎 Android 21 将 _- 都视为语言环境名称中的分隔符,因为语言环境定义最多需要 3 个部分(语言、国家和变体)遇到有 4 个部分的东西。