-1

I've read many articles about this error and i know its about nested views but still couldn't find a solution yet.

I get this error on API 8 (2.2) or API 10 (2.3+) devices. 4.x.+ are working like a charm.

the log is;

FATAL EXCEPTION: main
java.lang.StackOverflowError
at android.text.Styled.measureText(Styled.java:430)
at android.text.Layout.measureText(Layout.java:1655)
at android.text.Layout.getLineMax(Layout.java:689)
at android.text.Layout.draw(Layout.java:340)
at android.text.BoringLayout.draw(BoringLayout.java:365)
at android.widget.TextView.onDraw(TextView.java:4150)
at android.view.View.draw(View.java:6880)
at android.view.ViewGroup.drawChild(ViewGroup.java:1646)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
at android.view.View.draw(View.java:6883)
at android.view.ViewGroup.drawChild(ViewGroup.java:1646)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
at android.view.View.draw(View.java:6883)
at android.widget.FrameLayout.draw(FrameLayout.java:357)
at android.view.ViewGroup.drawChild(ViewGroup.java:1646)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
at android.widget.AbsListView.dispatchDraw(AbsListView.java:1480)
at android.widget.ListView.dispatchDraw(ListView.java:3138)
at android.view.View.draw(View.java:6986)
at android.widget.AbsListView.draw(AbsListView.java:2584)
at android.view.ViewGroup.drawChild(ViewGroup.java:1646)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
at android.view.View.draw(View.java:6883)
at android.support.v4.view.ViewPager.draw(ViewPager.java:2176)
at android.view.ViewGroup.drawChild(ViewGroup.java:1646)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
at android.view.View.draw(View.java:6883)
at android.support.v4.view.ViewPager.draw(ViewPager.java:2176)
at android.view.ViewGroup.drawChild(ViewGroup.java:1646)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
at android.support.v4.widget.DrawerLayout.drawChild(DrawerLayout.java:928)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
at android.view.View.draw(View.java:6883)
at android.widget.FrameLayout.draw(FrameLayout.java:357)
at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1862)
at android.view.ViewRoot.draw(ViewRoot.java:1522)
at android.view.ViewRoot.performTraversals(ViewRoot.java:1258)
at android.view.ViewRoot.handleMessage(ViewRoot.java:1859)
a

I've just a listview in linearlayout and here is list_item.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/selectable_background_card" >

<!-- android:stretchColumns="*" -->

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/txtSinif"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_toLeftOf="@+id/txtSinif"
    android:orientation="horizontal" >

    <others.TypefaceTextView
        android:id="@+id/txtNo"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_marginRight="3dp"
        android:gravity="center"
        android:text="1"
        android:textSize="18sp"
        app:customTypeface="fonts/RobotoCondensed-Light.ttf" />

    <others.TypefaceTextView
        android:id="@+id/txtKapi"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_marginLeft="3dp"
        android:layout_marginRight="3dp"
        android:gravity="center"
        android:text="1"
        android:textSize="18sp"
        app:customTypeface="fonts/RobotoCondensed-Light.ttf" />

    <others.TypefaceTextView
        android:id="@+id/txtPilotad"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:ellipsize="end"
        android:gravity="center"
        android:maxLines="1"
        android:scrollHorizontally="true"
        android:text="Y.AVCI"
        android:textSize="18sp"
        app:customTypeface="fonts/RobotoCondensed-Light.ttf" />
</LinearLayout>

<others.TypefaceTextView
    android:id="@+id/txtSinif"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_alignBottom="@+id/layoutTime"
    android:layout_alignParentTop="true"
    android:layout_toLeftOf="@+id/layoutTime"
    android:gravity="center"
    android:text="S2"
    android:textSize="18sp"
    app:customTypeface="fonts/RobotoCondensed-Light.ttf" />

<LinearLayout
    android:id="@+id/layoutTime"
    android:layout_width="95dp"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:orientation="vertical" >

    <others.TypefaceTextView
        android:id="@+id/txtZaman"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="+1:33:02.20"
        android:textSize="18sp"
        app:customTypeface="fonts/RobotoCondensed-Light.ttf" />

    <others.TypefaceTextView
        android:id="@+id/txtLiderFark"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="+20.00.5"
        android:textSize="12sp"
        app:customTypeface="fonts/RobotoCondensed-Light.ttf" />
</LinearLayout>

</RelativeLayout>

this is how it looks on 4.x.+ devices. enter image description here

Where is the exact problem? Which line should i remove?

Thank you for advices.

Swisyn
  • 397
  • 1
  • 6
  • 11

1 Answers1

0

Consider this comments for your problem

"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."

and

"In my case it was caused by nested layouts (complex list itens) in a list inside a fragment view pager inside another fragment, using v4 support and HoloEverywhere v1.4 libraries.

I had to remove nested fragments and build it in a different way."

Discursion here: java.lang.StackOverFlow error. Suspected too many views?

Community
  • 1
  • 1
Cícero Moura
  • 2,027
  • 1
  • 24
  • 36