java.lang.StackOverflowError บน Android 2.2+ API 8 และ API 10

ฉันได้อ่านบทความมากมายเกี่ยวกับข้อผิดพลาดนี้ และรู้ว่าข้อผิดพลาดนี้เกี่ยวกับมุมมองแบบซ้อน แต่ยังไม่พบวิธีแก้ไข

ฉันได้รับข้อผิดพลาดนี้บนอุปกรณ์ API 8 (2.2) หรือ API 10 (2.3+) 4.x.+ ทำงานได้อย่างมีเสน่ห์

บันทึกคือ;

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

ฉันเป็นเพียง listview ใน linearlayout และนี่คือ 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>

นี่คือลักษณะที่ปรากฏบนอุปกรณ์ 4.x.+ ป้อนคำอธิบายรูปภาพที่นี่

ปัญหาที่แท้จริงอยู่ที่ไหน? ฉันควรลบบรรทัดใด

ขอบคุณสำหรับคำแนะนำ


person Swisyn    schedule 10.08.2014    source แหล่งที่มา
comment
คลาส TypefaceTextView ของคุณมีลักษณะอย่างไร   -  person Simon Marquis    schedule 11.08.2014
comment
นี่ไง; pastebin.com/BkByQ92q   -  person Swisyn    schedule 11.08.2014
comment
ไม่มีใครสามารถช่วยได้เหรอ?   -  person Swisyn    schedule 15.08.2014
comment
ประสบความสำเร็จในการแก้ปัญหา? ผมมีปัญหาเดียวกัน :(   -  person Cícero Moura    schedule 17.12.2014


คำตอบ (1)


พิจารณาความคิดเห็นนี้สำหรับปัญหาของคุณ

"คุณมี (ทาง) เลย์เอาต์ที่ซ้อนกันมากเกินไป คุณสามารถตรวจสอบบล็อกอย่างเป็นทางการของ Android ได้ที่ d.android.com เพื่อรับคำแนะนำและเคล็ดลับในการเพิ่มประสิทธิภาพเลย์เอาต์"

และ

"ในกรณีของฉัน มันเกิดจากรูปแบบที่ซ้อนกัน (รายการที่ซับซ้อน) ในรายการภายในเพจเจอร์มุมมองแฟรกเมนต์ภายในแฟรกเมนต์อื่น โดยใช้การสนับสนุน v4 และไลบรารี HoloEverywhere v1.4

ฉันต้องเอาชิ้นส่วนที่ซ้อนกันออกแล้วสร้างมันด้วยวิธีอื่น"

การอภิปรายที่นี่: ข้อผิดพลาด java.lang.StackOverFlow สงสัยว่ามีการดูมากเกินไปใช่ไหม

person Cícero Moura    schedule 17.12.2014