使用希伯来语时Android textview stackoverflow

使用希伯来语时Android textview stackoverflow,android,Android,我的应用程序正在从RESTful http源检索数据。 有时,会出现新的BREW文本。 标题קו㪚מיה,עמההבית 内容!קשר:הצאתהף 在文本视图中使用之前,一切都很好。 我正在使用自己的列表适配器,当此文本尝试加载时会发生以下情况: I/dalvikvm( 2524): Stack overflow, expanding (0x41048200 to 0x41048000) I/dalvikvm( 2524): Shrank stack (to 0x41048200, curF


我的应用程序正在从RESTful http源检索数据。
有时,会出现新的BREW文本。
标题קו㪚מיה,עמההבית
内容!קשר:הצאתהף

在文本视图中使用之前,一切都很好。 我正在使用自己的列表适配器,当此文本尝试加载时会发生以下情况:

I/dalvikvm( 2524): Stack overflow, expanding (0x41048200 to 0x41048000)
I/dalvikvm( 2524): Shrank stack (to 0x41048200, curFrame is 0x41049cd8)
D/AndroidRuntime( 2524): Shutting down VM
W/dalvikvm( 2524): threadid=3: thread exiting with uncaught exception (group=0x4000fe70)
E/AndroidRuntime( 2524): Uncaught handler: thread main exiting due to uncaught exception
E/AndroidRuntime( 2524): java.lang.StackOverflowError
E/AndroidRuntime( 2524):        at android.text.Styled.drawText(Styled.java:290)
因此,我尝试在代码中使用try/catch,但没有任何帮助。catch未捕获此异常

我的代码:

try{    
   holder.content.setText(currPage.GetContent())      
   holder.title.setText(currPage.GetTitle());      
} catch (StackOverflowError e){      
   e.printStackTrace();  
}
这不起作用,因为这不是异常实际发生的地方。当文本被绘制到屏幕上时。我不知道如何阻止这一切的发生。 如果这是最简单的修复方法,我真的希望只有一个空白字段,但我不知道如何检测希伯来文文本是一种体面的方式。 任何帮助和建议都将不胜感激

谢谢 干杯 特里

logcat输出:

I/dalvikvm( 2411): Stack overflow, expanding (0x41048200 to 0x41048000)
I/dalvikvm( 2411): Shrank stack (to 0x41048200, curFrame is 0x41049cd8)
D/AndroidRuntime( 2411): Shutting down VM
W/dalvikvm( 2411): threadid=3: thread exiting with uncaught exception (group=0x4000fe70)
E/AndroidRuntime( 2411): Uncaught handler: thread main exiting due to uncaught exception
E/AndroidRuntime( 2411): java.lang.StackOverflowError
E/AndroidRuntime( 2411):        at android.text.Styled.drawText(Styled.java:290)
E/AndroidRuntime( 2411):        at android.text.Layout.drawText(Layout.java:1366)
E/AndroidRuntime( 2411):        at android.text.Layout.draw(Layout.java:339)
E/AndroidRuntime( 2411):        at android.widget.TextView.onDraw(TextView.java:3921)
E/AndroidRuntime( 2411):        at android.view.View.draw(View.java:5838)
E/AndroidRuntime( 2411):        at android.view.ViewGroup.drawChild(ViewGroup.java:1486)
E/AndroidRuntime( 2411):        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)
E/AndroidRuntime( 2411):        at android.view.ViewGroup.drawChild(ViewGroup.java:1484)
E/AndroidRuntime( 2411):        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)
E/AndroidRuntime( 2411):        at android.view.View.draw(View.java:5841)
E/AndroidRuntime( 2411):        at android.view.ViewGroup.drawChild(ViewGroup.java:1486)
E/AndroidRuntime( 2411):        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)
E/AndroidRuntime( 2411):        at android.view.View.draw(View.java:5841)
E/AndroidRuntime( 2411):        at android.view.ViewGroup.drawChild(ViewGroup.java:1486)
E/AndroidRuntime( 2411):        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)
E/AndroidRuntime( 2411):        at android.widget.AbsListView.dispatchDraw(AbsListView.java:1319)
E/AndroidRuntime( 2411):        at android.widget.ListView.dispatchDraw(ListView.java:2820)
E/AndroidRuntime( 2411):        at android.view.View.draw(View.java:5944)
E/AndroidRuntime( 2411):        at android.widget.AbsListView.draw(AbsListView.java:2121)
E/AndroidRuntime( 2411):        at android.view.ViewGroup.drawChild(ViewGroup.java:1486)
E/AndroidRuntime( 2411):        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)
E/AndroidRuntime( 2411):        at android.view.ViewGroup.drawChild(ViewGroup.java:1484)
E/AndroidRuntime( 2411):        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)
E/AndroidRuntime( 2411):        at android.view.View.draw(View.java:5841)
E/AndroidRuntime( 2411):        at android.widget.FrameLayout.draw(FrameLayout.java:352)
E/AndroidRuntime( 2411):        at android.view.ViewGroup.drawChild(ViewGroup.java:1486)
E/AndroidRuntime( 2411):        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)
E/AndroidRuntime( 2411):        at android.view.ViewGroup.drawChild(ViewGroup.java:1484)
E/AndroidRuntime( 2411):        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)
E/AndroidRuntime( 2411):        at android.view.ViewGroup.drawChild(ViewGroup.java:1484)
E/AndroidRuntime( 2411):        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)
E/AndroidRuntime( 2411):        at android.view.ViewGroup.drawChild(ViewGroup.java:1484)
E/AndroidRuntime( 2411):        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)
E/AndroidRuntime( 2411):        at android.view.ViewGroup.drawChild(ViewGroup.java:1484)
E/AndroidRuntime( 2411):        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)
E/AndroidRuntime( 2411):        at android.view.View.draw(View.java:5841)
E/AndroidRuntime( 2411):        at android.widget.FrameLayout.draw(FrameLayout.java:352)
E/AndroidRuntime( 2411):        at android.view.ViewGroup.drawChild(ViewGroup.java:1486)
E/AndroidRuntime( 2411):        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)
E/AndroidRuntime( 2411):        at android.view.ViewGroup.drawChild(ViewGroup.java:1484)
E/AndroidRuntime( 2411):        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)
E/AndroidRuntime( 2411):        at android.view.View.draw(View.java:5841)
E/AndroidRuntime( 2411):        at android.widget.FrameLayout.draw(FrameLayout.java:352)
E/AndroidRuntime( 2411):        at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1847)
E/AndroidRuntime( 2411):        at android.view.ViewRoot.draw(ViewRoot.java:1217)
E/AndroidRuntime( 2411):        at android.view.ViewRoot.performTraversals(ViewRoot.java:1030)
E/AndroidRuntime( 2411):        at android.view.ViewRoot.handleMessage(ViewRoot.java:1482)
E/AndroidRuntime( 2411):        at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime( 2411):        at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime( 2411):        at android.app.ActivityThread.main(ActivityThread.java:3948)
E/AndroidRuntime( 2411):        at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 2411):        at java.lang.reflect.Method.invoke(Method.java:521)
E/AndroidRuntime( 2411):        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:782)
E/AndroidRuntime( 2411):        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:540)
E/AndroidRuntime( 2411):        at dalvik.system.NativeStart.main(Native Method)

注:原帖子和标题为阿拉伯语。说希伯来语是正确的。也许这很重要。

我曾多次将阿拉伯语文本写入TextView,但没有看到堆栈溢出异常,这也是一种从右向左(RTL)语言。您是否修改了
onDraw()
方法或可能导致此错误的任何其他方法

如果找不到原因,如果给定的
inputText
包含希伯来文字符,则应返回
true

Pattern.matches("(\\p{InHebrew})+", inputText);
如果其他语言也会导致问题,您可能还希望禁止使用任何非拉丁字符。此网站包含可匹配的所有unicode脚本的列表:

在你的例子中,这实际上是希伯来语,不是阿拉伯语,FWIW(但可能是相同的基本问题——从右到左的文本)。哦。谢谢你的更正。也许这会对我的搜索有所帮助。我更新了问题,说的也是希伯来语。谢谢你的回复。我没有对onDraw()或任何其他方法进行任何更改。我只需要设置text(),就这样。