Android中的StackOverflow错误 [英] StackOverflow error in Android

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

问题描述

我在 Acer平板电脑中运行我的应用程序,每次都可以获得崩溃,应用程序完全可以运行在三星平板电脑上。 p>

  02-13 09:48:05.400:D / OpenGLRenderer(7270):冲洗缓存(模式0)
02- 13 09:48:07.700:D / dalvikvm(7270):GC_CONCURRENT释放13419K,65%免费7568K / 21063K,暂停2ms + 4ms
02-13 09:48:07.830:I / dalvikvm(7270) = 1:调用Landroid / widget / TextView的堆栈溢出; .onCreateDrawableState:LI
02-13 09:48:07.830:I / dalvikvm(7270):方法需要36 + 20 + 20 = 76字节,fp是0x4001732c(44左)
02-13 09:48:07.830:I / dalvikvm(7270):扩展堆栈结束(0x40017300到0x40017000)
02-13 09:48:07.830:I / dalvikvm (7270):Shrank stack(0x40017300,curFrame是0x40017500)
02-13 09:48:07.830:D / AndroidRuntime(7270):关闭VM
02-13 09:48:07.830: W / dalvikvm(7270):threadid = 1:线程退出未捕获的异常(组= 0x40a561f8)
02-13 09:48:07.860:E / A ndroidRuntime(7270):FATAL EXCEPTION:main
02-13 09:48:07.860:E / AndroidRuntime(7270):java.lang.StackOverflowError
02-13 09:48:07.860:E / AndroidRuntime (7270):at android.view.View.getDrawableState(View.java:11556)
02-13 09:48:07.860:E / AndroidRuntime(7270):在android.widget.TextView.onDraw(TextView。 java:4863)
02-13 09:48:07.860:E / AndroidRuntime(7270):android.view.View.draw(View.java:10983)
02-13 09:48: 07.860:E / AndroidRuntime(7270):android.view.View.getDisplayList(View.java:10422)
02-13 09:48:07.860:E / AndroidRuntime(7270):在android.view.ViewGroup .drawChild(ViewGroup.java:2850)
02-13 09:48:07.860:E / AndroidRuntime(7270):在android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489)
02- 13 09:48:07.860:E / AndroidRuntime(7270):android.view.View.draw(View.java:10986)
02-13 09:48:07.860:E / AndroidRuntime(7270) android.view.View.getDisplayList(View.java:10422)
02-13 09:48:07.860:E / AndroidRun时间(7270):在android.view.ViewGroup.drawChild(ViewGroup.java:2850)
02-13 09:48:07.860:E / AndroidRuntime(7270):在android.view.ViewGroup.dispatchDraw(ViewGroup .java:2489)
02-13 09:48:07.860:E / AndroidRuntime(7270):在android.view.View.getDisplayList(View.java:10420)
02-13 09:48 :07.860:E / AndroidRuntime(7270):在android.view.ViewGroup.drawChild(ViewGroup.java:2850)
02-13 09:48:07.860:E / AndroidRuntime(7270):在android.view。 ViewGroup.dispatchDraw(ViewGroup.java:2489)
02-13 09:48:07.860:E / AndroidRuntime(7270):在android.view.View.getDisplayList(View.java:10420)
02 -13 09:48:07.860:E / AndroidRuntime(7270):android.view.ViewGroup.drawChild(ViewGroup.java:2850)
02-13 09:48:07.860:E / AndroidRuntime(7270)在android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489)
02-13 09:48:07.860:E / AndroidRuntime(7270):在android.view.View.getDisplayList(View.java:10420)
02-13 09:48:07.860:E / AndroidRuntime(7270):在android.view.ViewGroup.drawChild(ViewGroup.java:2850)
02-13 09:48:07.860:E / AndroidRuntime(7270):在android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489)
02-13 09:48:07.860:E / AndroidRuntime(7270):at android.view.View.draw(View.java:10986)
02-13 09:48:07.860:E / AndroidRuntime(7270):在android.widget.FrameLayout.draw(FrameLayout.java:450)
02-13 09:48:07.860:E / AndroidRuntime(7270):在android.widget.ScrollView.draw(ScrollView .java:1524)
02-13 09:48:07.860:E / AndroidRuntime(7270):在android.view.View.getDisplayList(View.java:10422)
02-13 09:48 :07.860:E / AndroidRuntime(7270):在android.view.ViewGroup.drawChild(ViewGroup.java:2850)
02-13 09:48:07.860:E / AndroidRuntime(7270):在android.view。 ViewGroup.dispatchDraw(ViewGroup.java:2489)
02-13 09:48:07.860:E / AndroidRuntime(7270):在android.view.View.draw(View.java:10986)
02 -13 09:48:07.860:E / AndroidRuntime(7270):在android.widget.FrameLayout.draw (FrameLayout.java:450)
02-13 09:48:07.860:E / AndroidRuntime(7270):android.view.View.getDisplayList(View.java:10422)

请帮我解决这个问题

解决方案

StackOverflowError 正在运行的程序的堆栈深度超过某个平台或VM特定限制时抛出。通常情况下,只有当程序变得无限递归时,才会发生这种情况,但是它也可能发生在正确编写(但深度递归)的程序中。



也许你有太多的嵌套布局。


I am running my app in Acer tablet, app get crash every time, and app is perfectly run on Samsung tablet.

02-13 09:48:05.400: D/OpenGLRenderer(7270): Flushing caches (mode 0)
02-13 09:48:07.700: D/dalvikvm(7270): GC_CONCURRENT freed 13419K, 65% free 7568K/21063K, paused 2ms+4ms
02-13 09:48:07.830: I/dalvikvm(7270): threadid=1: stack overflow on call to Landroid/widget/TextView;.onCreateDrawableState:LI
02-13 09:48:07.830: I/dalvikvm(7270):   method requires 36+20+20=76 bytes, fp is 0x4001732c (44 left)
02-13 09:48:07.830: I/dalvikvm(7270):   expanding stack end (0x40017300 to 0x40017000)
02-13 09:48:07.830: I/dalvikvm(7270): Shrank stack (to 0x40017300, curFrame is 0x40017500)
02-13 09:48:07.830: D/AndroidRuntime(7270): Shutting down VM
02-13 09:48:07.830: W/dalvikvm(7270): threadid=1: thread exiting with uncaught exception (group=0x40a561f8)
02-13 09:48:07.860: E/AndroidRuntime(7270): FATAL EXCEPTION: main
02-13 09:48:07.860: E/AndroidRuntime(7270): java.lang.StackOverflowError
02-13 09:48:07.860: E/AndroidRuntime(7270):     at android.view.View.getDrawableState(View.java:11556)
02-13 09:48:07.860: E/AndroidRuntime(7270):     at android.widget.TextView.onDraw(TextView.java:4863)
02-13 09:48:07.860: E/AndroidRuntime(7270):     at android.view.View.draw(View.java:10983)
02-13 09:48:07.860: E/AndroidRuntime(7270):     at android.view.View.getDisplayList(View.java:10422)
02-13 09:48:07.860: E/AndroidRuntime(7270):     at android.view.ViewGroup.drawChild(ViewGroup.java:2850)
02-13 09:48:07.860: E/AndroidRuntime(7270):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489)
02-13 09:48:07.860: E/AndroidRuntime(7270):     at android.view.View.draw(View.java:10986)
02-13 09:48:07.860: E/AndroidRuntime(7270):     at android.view.View.getDisplayList(View.java:10422)
02-13 09:48:07.860: E/AndroidRuntime(7270):     at android.view.ViewGroup.drawChild(ViewGroup.java:2850)
02-13 09:48:07.860: E/AndroidRuntime(7270):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489)
02-13 09:48:07.860: E/AndroidRuntime(7270):     at android.view.View.getDisplayList(View.java:10420)
02-13 09:48:07.860: E/AndroidRuntime(7270):     at android.view.ViewGroup.drawChild(ViewGroup.java:2850)
02-13 09:48:07.860: E/AndroidRuntime(7270):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489)
02-13 09:48:07.860: E/AndroidRuntime(7270):     at android.view.View.getDisplayList(View.java:10420)
02-13 09:48:07.860: E/AndroidRuntime(7270):     at android.view.ViewGroup.drawChild(ViewGroup.java:2850)
02-13 09:48:07.860: E/AndroidRuntime(7270):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489)
02-13 09:48:07.860: E/AndroidRuntime(7270):     at android.view.View.getDisplayList(View.java:10420)
02-13 09:48:07.860: E/AndroidRuntime(7270):     at android.view.ViewGroup.drawChild(ViewGroup.java:2850)
02-13 09:48:07.860: E/AndroidRuntime(7270):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489)
02-13 09:48:07.860: E/AndroidRuntime(7270):     at android.view.View.draw(View.java:10986)
02-13 09:48:07.860: E/AndroidRuntime(7270):     at android.widget.FrameLayout.draw(FrameLayout.java:450)
02-13 09:48:07.860: E/AndroidRuntime(7270):     at android.widget.ScrollView.draw(ScrollView.java:1524)
02-13 09:48:07.860: E/AndroidRuntime(7270):     at android.view.View.getDisplayList(View.java:10422)
02-13 09:48:07.860: E/AndroidRuntime(7270):     at android.view.ViewGroup.drawChild(ViewGroup.java:2850)
02-13 09:48:07.860: E/AndroidRuntime(7270):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489)
02-13 09:48:07.860: E/AndroidRuntime(7270):     at android.view.View.draw(View.java:10986)
02-13 09:48:07.860: E/AndroidRuntime(7270):     at android.widget.FrameLayout.draw(FrameLayout.java:450)
02-13 09:48:07.860: E/AndroidRuntime(7270):     at android.view.View.getDisplayList(View.java:10422)

Please help me how to solve this issue

解决方案

StackOverflowError Thrown when the depth of the stack of the running program exceeds some platform or VM specific limit. Typically, this will occur only when a program becomes infinitely recursive, but it can also occur in correctly written (but deeply recursive) programs.

Perhaps you have too many nested layouts.

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

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