Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

java.lang.StackOverFlow error. Suspected too many views?

Tags:

When you get an error like the one below (Android 1.5), is it because there are too many nested ViewGroups, or because the total number of Views is too great? Are there any tricks to get around it while still keeping the same look to your app?

java.lang.StackOverflowError    at android.text.Styled.measureText(Styled.java:371)    at android.text.Layout.measureText(Layout.java:1600)    at android.text.Layout.getLineMax(Layout.java:654)    at android.text.Layout.draw(Layout.java:310)    at android.text.BoringLayout.draw(BoringLayout.java:356)    at android.widget.TextView.onDraw(TextView.java:3921)    at android.view.View.draw(View.java:5838)    at android.view.ViewGroup.drawChild(ViewGroup.java:1486)    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)    at android.view.ViewGroup.drawChild(ViewGroup.java:1484)    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)    at android.widget.AbsListView.dispatchDraw(AbsListView.java:1319)    at android.widget.ListView.dispatchDraw(ListView.java:2820)    at android.view.View.draw(View.java:5944)    at android.widget.AbsListView.draw(AbsListView.java:2121)    at android.view.ViewGroup.drawChild(ViewGroup.java:1486)    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)    at android.view.ViewGroup.drawChild(ViewGroup.java:1484)    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)    at android.view.View.draw(View.java:5841)    at android.widget.FrameLayout.draw(FrameLayout.java:352)    at android.view.ViewGroup.drawChild(ViewGroup.java:1486)    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)    at android.view.ViewGroup.drawChild(ViewGroup.java:1484)    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)    at android.view.View.draw(View.java:5841)    at android.widget.FrameLayout.draw(FrameLayout.java:352)    at android.view.ViewGroup.drawChild(ViewGroup.java:1486)    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)    at android.view.View.draw(View.java:5841)    at android.view.ViewGroup.drawChild(ViewGroup.java:1486)    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)    at android.view.View.draw(View.java:5841)    at android.view.ViewGroup.drawChild(ViewGroup.java:1486)    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)    at android.view.View.draw(View.java:5841)    at android.widget.FrameLayout.draw(FrameLayout.java:352)    at android.view.ViewGroup.drawChild(ViewGroup.java:1486)    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)    at android.view.ViewGroup.drawChild(ViewGroup.java:1484)    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)    at android.view.ViewGroup.drawChild(ViewGroup.java:1484)    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)    at android.view.View.draw(View.java:5841)    at android.widget.FrameLayout.draw(FrameLayout.java:352)    at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1847)    at android.view.ViewRoot.draw(ViewRoot.java:1217)    at android.view.ViewRoot.performTraversals(ViewRoot.java:1030)    at android.view.ViewRoot.handleMessage(ViewRoot.java:1482)    at android.os.Handler.dispatchMessage(Handler.java:99)    at android.os.Looper.loop(Looper.java:123)    at android.app.ActivityThread.main(ActivityThread.java:3948)    at java.lang.reflect.Method.invokeNative(Native Method)    at java.lang.reflect.Method.invoke(Method.java:521)    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:782)    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:540)    at dalvik.system.NativeStart.main(Native Method) 
like image 646
synic Avatar asked May 04 '10 05:05

synic


People also ask

How do I fix stackoverflow error in Java?

Increase Thread Stack Size (-Xss) Increasing the stack size can be useful, for example, when the program involves calling a large number of methods or using lots of local variables. This will set the thread's stack size to 4 mb which should prevent the JVM from throwing a java. lang. StackOverflowError .

Why am I getting a stack overflow error?

A stack overflow is a type of buffer overflow error that occurs when a computer program tries to use more memory space in the call stack than has been allocated to that stack.

Why do we get stack overflow exception in Java?

Class StackOverflowError Thrown when a stack overflow occurs because an application recurses too deeply.


2 Answers

You have (way) too many nested layouts. You can check out the official Android blog at d.android.com to get tips and tricks on how to optimize layouts.

like image 194
Romain Guy Avatar answered Oct 09 '22 15:10

Romain Guy


in my case I resolved by in

onCreateView

        rootView = inflater.inflate(R.layout.fragment_interest_list, container);         return rootView; 

by adding attachToRoot parameter

         rootView = inflater.inflate(R.layout.fragment_interest_list,container,false);          return rootView; 
like image 26
Ishtiaq Avatar answered Oct 09 '22 16:10

Ishtiaq