Android中的StackOverflow错误 [英] StackOverflow error in Android
本文介绍了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屋!
查看全文