首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >文本到语音输出屏幕崩溃

文本到语音输出屏幕崩溃
EN

Stack Overflow用户
提问于 2014-03-10 10:22:11
回答 1查看 1.6K关注 0票数 0

我正在为android开发一个定制的文本到语音引擎(只用于一种语言)。在大多数手机上,一切都正常工作,但我在安装Kit Kat的连接4上有问题。我的引擎已成功安装,并在可用的引擎下可见。我可以选择它作为我的首选引擎。在我为我的引擎点击语言选项之后,一个只有一种可用语言的警告对话框出现了(这是正常的)。但在我点击它之后,设置应用程序就会崩溃。每次打开设置/语言和输入/文本到语音输出时,都会发生这种情况。我可以看到在默认的语言选项检查下..。已经写好了。当我检查堆栈跟踪时,我可以看到函数com.android.setting.tts.TextToSpeechSettings.CheckDefaultLocale()中抛出了MissingResourceExceptions: No 3字母语言代码。

我发现我在语言ISO3代码上犯了一个错误,我修复了它。当我把这个版本安装到Nexus 4手机上,它没有安装我的应用程序之前的版本,崩溃不再发生。但是,当它安装在以前版本的手机上时,就会出现问题(尽管旧版本已被卸载)。我可以看到,Settings应用程序仍然使用旧的(错误的) ISO3代码。如果成功地卸载了第一个版本,怎么可能呢?

我必须说,我可以用反光镜和我的引擎。但是由于撞车,一旦我的引擎被选中,就不可能改变首选的引擎。

这是我的堆栈

代码语言:javascript
复制
 03-10 11:11:35.934: E/AndroidRuntime(10608): FATAL EXCEPTION: main
03-10 11:11:35.934: E/AndroidRuntime(10608): Process: com.android.settings, PID: 10608
03-10 11:11:35.934: E/AndroidRuntime(10608): java.util.MissingResourceException: No 3-letter language code for locale: hebrew
03-10 11:11:35.934: E/AndroidRuntime(10608):    at java.util.Locale.getISO3Language(Locale.java:540)
03-10 11:11:35.934: E/AndroidRuntime(10608):    at com.android.settings.tts.TextToSpeechSettings.evaluateDefaultLocale(TextToSpeechSettings.java:284)
03-10 11:11:35.934: E/AndroidRuntime(10608):    at com.android.settings.tts.TextToSpeechSettings.checkDefaultLocale(TextToSpeechSettings.java:270)
03-10 11:11:35.934: E/AndroidRuntime(10608):    at com.android.settings.tts.TextToSpeechSettings.onInitEngine(TextToSpeechSettings.java:251)
03-10 11:11:35.934: E/AndroidRuntime(10608):    at com.android.settings.tts.TextToSpeechSettings$1.onInit(TextToSpeechSettings.java:128)
03-10 11:11:35.934: E/AndroidRuntime(10608):    at android.speech.tts.TextToSpeech.dispatchOnInit(TextToSpeech.java:701)
03-10 11:11:35.934: E/AndroidRuntime(10608):    at android.speech.tts.TextToSpeech.access$1400(TextToSpeech.java:58)
03-10 11:11:35.934: E/AndroidRuntime(10608):    at android.speech.tts.TextToSpeech$Connection$SetupConnectionAsyncTask.onPostExecute(TextToSpeech.java:1509)
03-10 11:11:35.934: E/AndroidRuntime(10608):    at android.speech.tts.TextToSpeech$Connection$SetupConnectionAsyncTask.onPostExecute(TextToSpeech.java:1471)
03-10 11:11:35.934: E/AndroidRuntime(10608):    at android.os.AsyncTask.finish(AsyncTask.java:632)
03-10 11:11:35.934: E/AndroidRuntime(10608):    at android.os.AsyncTask.access$600(AsyncTask.java:177)
03-10 11:11:35.934: E/AndroidRuntime(10608):    at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:645)
03-10 11:11:35.934: E/AndroidRuntime(10608):    at android.os.Handler.dispatchMessage(Handler.java:102)
03-10 11:11:35.934: E/AndroidRuntime(10608):    at android.os.Looper.loop(Looper.java:136)
03-10 11:11:35.934: E/AndroidRuntime(10608):    at android.app.ActivityThread.main(ActivityThread.java:5017)
03-10 11:11:35.934: E/AndroidRuntime(10608):    at java.lang.reflect.Method.invokeNative(Native Method)
03-10 11:11:35.934: E/AndroidRuntime(10608):    at java.lang.reflect.Method.invoke(Method.java:515)
03-10 11:11:35.934: E/AndroidRuntime(10608):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
03-10 11:11:35.934: E/AndroidRuntime(10608):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
03-10 11:11:35.934: E/AndroidRuntime(10608):    at dalvik.system.NativeStart.main(Native Method)
03-10 11:11:35.944: W/ActivityManager(598):   Force finishing activity com.android.settings/.SubSettings
03-10 11:11:35.944: W/ActivityManager(598):   Force finishing activity com.android.settings/.SubSettings
03-10 11:11:36.445: W/ActivityManager(598): Activity pause timeout for ActivityRecord{432ad308 u0 com.android.settings/.SubSettings t218 f}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-10 11:25:36

这是一个Android的错误,这是非常令人沮丧的。

有一个错误报告的这里 (它是固定的,但尚未推出到实际设备)和一个相关的这里

如果系统无法匹配您声明的区域设置,则设置将持续崩溃。我试图清除一切以防止这种情况发生,但系统正在某处缓存这个值,并试图在检查应用程序中任何更新的区域设置之前匹配它。

我把我的代码换成了一个我知道会有匹配的地区,擦除了我的设备,然后把.

您需要确保您声明的正确定位为heb-HEB我认为!但小心!如果Android不认识它,你就会再次崩溃.

最好声明默认的额外区域设置,然后签入设置,如果您使用的区域设置代码正确显示。如果不是,不要选择它!,然后再试一次.

我张贴在上面的错误报告上,问Android在哪里坚持这个不正确的地方,但我没有得到回答.如果你能发现,你就不需要擦拭你的设备了。我试着在康复过程中擦掉所有的缓存,但都没有效果。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22297532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档