Android - 计算器溢出错误 [英] Android - stackoverflow Error

查看:22
本文介绍了Android - 计算器溢出错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

StackOverflowError 有问题.更糟糕的是,现在它只发生在一台设备上.到目前为止,我已经测试过:

Got problem with StackOverflowError. The worse thing that right now its occur only on one device. I've tested so far on:

三星 Galaxy SII (2.3.4)

Samsung Galaxy SII (2.3.4)

三星 Nexus S (4.0.3)

Samsung Nexus S (4.0.3)

HTC Wildfire(2.3.7 和 2.2)

HTC Wildfire (2.3.7 and 2.2)

三星 Galaxy Tab 10.1 (3.2)

Samsung Galaxy Tab 10.1 (3.2)

...一切都很好.但是当我将应用程序发送给客户并在 HTC Holiday 2.3.4 上对其进行测试时,它会崩溃错误:

...and everything is fine. But when I send app to customer and He tested it on HTC Holiday 2.3.4 its crash with this error:

java.lang.StackOverflowError
at android.widget.TextView.onDraw(TextView.java:4329)
at android.view.View.draw(View.java:6993)
at android.view.ViewGroup.drawChild(ViewGroup.java:1732)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1459)
at android.view.View.draw(View.java:6996)
at android.view.ViewGroup.drawChild(ViewGroup.java:1732)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1459)
at android.view.View.draw(View.java:6996)
at android.view.ViewGroup.drawChild(ViewGroup.java:1732)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1459)
at android.view.View.draw(View.java:6996)
at android.view.ViewGroup.drawChild(ViewGroup.java:1732)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1459)
at android.view.View.draw(View.java:6996)
at android.view.ViewGroup.drawChild(ViewGroup.java:1732)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1459)
at android.view.ViewGroup.drawChild(ViewGroup.java:1730)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1459)
at android.view.View.draw(View.java:7105)
at android.widget.FrameLayout.draw(FrameLayout.java:357)
at android.widget.ScrollView.draw(ScrollView.java:1417)
at android.view.ViewGroup.drawChild(ViewGroup.java:1732)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1459)
at android.view.View.draw(View.java:6996)
at android.view.ViewGroup.drawChild(ViewGroup.java:1732)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1459)
at android.view.View.draw(View.java:6996)
at android.widget.FrameLayout.draw(FrameLayout.java:357)
at android.view.ViewGroup.drawChild(ViewGroup.java:1732)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1459)
at android.view.ViewGroup.drawChild(ViewGroup.java:1730)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1459)
at android.view.View.draw(View.java:6996)
at android.widget.FrameLayout.draw(FrameLayout.java:357)
at android.view.ViewGroup.drawChild(ViewGroup.java:1732)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1459)
at android.view.ViewGroup.drawChild(ViewGroup.java:1730)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1459)
at android.view.ViewGroup.drawChild(ViewGroup.java:1730)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1459)
at android.view.ViewGroup.drawChild(ViewGroup.java:1730)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1459)
at android.view.View.draw(View.java:6996)
at android.widget.FrameLayout.draw(FrameLayout.java:357)
at android.view.ViewGroup.drawChild(ViewGroup.java:1732)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1459)
at android.view.ViewGroup.drawChild(ViewGroup.java:1730)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1459)
at android.view.ViewGroup.drawChild(ViewGroup.java:1730)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1459)
at android.view.ViewGroup.drawChild(ViewGroup.java:1730)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1459)
at android.view.View.draw(View.java:6996)
at android.widget.FrameLayout.draw(FrameLayout.java:357)
at android.view.ViewGroup.drawChild(ViewGroup.java:1732)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1459)
at android.view.View.draw(View.java:6996)
at android.widget.FrameLayout.draw(FrameLayout.java:357)
at android.view.ViewGroup.drawChild(ViewGroup.java:1732)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1459)
at android.view.View.draw(View.java:6996)
at android.widget.FrameLayout.draw(FrameLayout.java:357)
at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:2054)
at android.view.ViewRoot.draw(ViewRoot.java:1632)
at android.view.ViewRoot.performTraversals(ViewRoot.java:1335)
at android.view.ViewRoot.handleMessage(ViewRoot.java:1991)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:150)
at android.app.ActivityThread.main(ActivityThread.java:4358)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:849)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:607)
at dalvik.system.NativeStart.main(Native Method)

有没有我不知道的可能,增加内存等等.应用程序很复杂,一切都在 TabWidget 上作为基本活动.在一项活动中发生错误,我使用我使用的 listView带有动态添加视图的滚动视图.

There is any possibility to I don't know, increase memory, etc. App is complex and everything is on TabWidget as basic activity. Error occur in one activity, where I instand using listView I use scrollview with dynamically added view.

更多详情:

1) 我出错的地方是 TabWidget,它在另一个里面具有两个意图的 TabWidget.

1) The place where I have error is TabWidget, which have inside another TabWidget with Two intents.

什么更好?有一个带有 TabWidget 的 TabWidget 或者只有一个TabWidget 和带有假 tabbutton 的意图通过 setContentView(...) 来处理内容.

What is better? Have TabWidget with TabWidget inside or have only one TabWidget and intent with fake tabbuttons to with the content by setContentView(...).

2) 在第一个意图上,我有两个 ScrollView,第一个我用用户 pic 和相同的数据动态添加视图.当您点击用户时,会出现带有第二个 ScrollView 的动画,该动画也由更详细的用户数据动态填充.所有视图均来自 xml 文件.

2) On first intent I have two ScrollViews, the first one I dynamically add the views with user pic and same data. When you tap the user, appear animation with second ScrollView, which is also dynamically fill up by more detailed user data. All view are coming from xml files.

我在使用 ListView 时没有出现这个错误,没有动画,为了显示详细视图,我只是通过 setContentView 方法更改内容视图.我应该回到这个方法吗?感谢您的帮助.

I didn't occur this error while I was using ListView, with no Animation and to show detailed view I just change content view, by setContentView method. Should I come back to this method? Thanks for any help.

3) 为什么这个错误只发生在一台设备上?不幸的是,这是在美国的客户端设备,我在英国,所以我不可能重现错误.

3) Why this error occurs only on one device? Unfortunately this is client device with is in USA, I'm in UK, so I got no possibility to reproduce the error.

推荐答案

StackOverflowError 通常发生在递归调用过多的时候,所以我建议你非常仔细地检查每一个会调用自己的方法,特别是会导致它们的条件称自己的次数不合理(几千次),或导致无退出情况(无限递归).

StackOverflowError usually occurs when there are too many recursive calls, so I would suggest that you check every method that would call itself very carefully, specifically conditions that would cause them to call themselves an unreasonable number of times (a few thousands), or cause a no-exit situation (infinite recursion).

如需更详细的帮助,请发布错误日志和其他信息.

For more detailed help, please post error log and other info.

这篇关于Android - 计算器溢出错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆