5

하나의 Android 응용 프로그램에서 작업하고 있습니다. 내 하나의 활동에서 PullToRefreshListView를 사용하고 있습니다. 언젠가는 내가 받고있다 java.lang.StackOverflowError 나의 활동에 대한 예외. 나는 그것을 고치려고 노력하고 또한 구글에서도 검색했지만 완벽한 솔루션을 얻지는 못했다.응용 프로그램에서 java.lang.StackOverflowError를 throw합니다. 활성 상태의 예외

나는 동일한 데이터를 가진 PullToRefreshListView와 동일한 기능을 가진 두 가지 활동이 있습니다. 하지만 하나의 활동에서만이 예외가 발생합니다. 다른 활동은 잘 작동합니다.

여기 내 전체 StakeTrace입니다.

도와주세요. 나의 가난한 영어를 유감스럽게 생각한다.

감사합니다.

java.lang.StackOverflowError 
at android.text.TextLine.handleText(TextLine.java:749) 
at android.text.TextLine.handleRun(TextLine.java:972) 
at android.text.TextLine.measureRun(TextLine.java:416) 
at android.text.TextLine.measure(TextLine.java:295) 
at android.text.TextLine.metrics(TextLine.java:269) 
at android.text.Layout.getLineExtent(Layout.java:942) 
at android.text.Layout.draw(Layout.java:405) 
at android.text.BoringLayout.draw(BoringLayout.java:400) 
at android.widget.TextView.onDraw(TextView.java:5038) 
at android.view.View.draw(View.java:10982) 
at android.view.View.getDisplayList(View.java:10421) 
at android.view.ViewGroup.drawChild(ViewGroup.java:2850) 
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489) 
at android.view.View.getDisplayList(View.java:10419) 
at android.view.ViewGroup.drawChild(ViewGroup.java:2850) 
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489) 
at android.view.View.getDisplayList(View.java:10419) 
at android.view.ViewGroup.drawChild(ViewGroup.java:2850) 
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489) 
at android.view.View.getDisplayList(View.java:10419) 
at android.view.ViewGroup.drawChild(ViewGroup.java:2850) 
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489) 
at android.view.View.draw(View.java:10985) 
at android.view.View.getDisplayList(View.java:10421) 
at android.view.ViewGroup.drawChild(ViewGroup.java:2850) 
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489) 
at android.view.View.getDisplayList(View.java:10419) 
at android.view.ViewGroup.drawChild(ViewGroup.java:2850) 
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489) 
at android.view.View.getDisplayList(View.java:10419) 
at android.view.ViewGroup.drawChild(ViewGroup.java:2850) 
at android.widget.ListView.drawChild(ListView.java:3223) 
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489) 
at android.widget.AbsListView.dispatchDraw(AbsListView.java:2092) 
at android.widget.ListView.dispatchDraw(ListView.java:3218) 
at com.handmark.pulltorefresh.library.PullToRefreshListView$InternalListView.dispatchDraw(PullToRefreshListView.java:293) 
at android.view.View.draw(View.java:10985) 
at android.widget.AbsListView.draw(AbsListView.java:3398) 
at android.view.View.getDisplayList(View.java:10421) 
at android.view.ViewGroup.drawChild(ViewGroup.java:2850) 
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489) 
at android.view.View.getDisplayList(View.java:10419) 
at android.view.ViewGroup.drawChild(ViewGroup.java:2850) 
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489) 
at android.view.View.draw(View.java:10985) 
at android.view.View.getDisplayList(View.java:10421) 
at android.view.ViewGroup.drawChild(ViewGroup.java:2850) 
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489) 
at android.view.View.draw(View.java:10985) 
at android.view.View.getDisplayList(View.java:10421) 
at android.view.ViewGroup.drawChild(ViewGroup.java:2850) 
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489) 
at android.view.View.getDisplayList(View.java:10419) 
at android.view.ViewGroup.drawChild(ViewGroup.java:2850) 
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489) 
at android.view.View.getDisplayList(View.java:10419) 
at android.view.ViewGroup.drawChild(ViewGroup.java:2850) 
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489) 
at android.view.View.draw(View.java:10985) 
at android.view.View.getDisplayList(View.java:10421) 
at android.view.ViewGroup.drawChild(ViewGroup.java:2850) 
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489) 
at android.view.View.getDisplayList(View.java:10419) 
at android.view.ViewGroup.drawChild(ViewGroup.java:2850) 
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489) 
at android.view.View.getDisplayList(View.java:10419) 
at android.view.ViewGroup.drawChild(ViewGroup.java:2850) 
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489) 
at android.view.View.draw(View.java:10985) 
at android.view.View.getDisplayList(View.java:10421) 
at android.view.ViewGroup.drawChild(ViewGroup.java:2850) 
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489) 
at android.view.View.getDisplayList(View.java:10419) 
at android.view.ViewGroup.drawChild(ViewGroup.java:2850) 
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489) 
at android.view.View.getDisplayList(View.java:10419) 
at android.view.ViewGroup.drawChild(ViewGroup.java:2850) 
at android.support.v4.widget.DrawerLayout.drawChild(DrawerLayout.java:928) 
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489) 
at android.view.View.draw(View.java:10985) 
at android.view.View.getDisplayList(View.java:10421) 
at android.view.ViewGroup.drawChild(ViewGroup.java:2850) 
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489) 
at android.view.View.draw(View.java:10985) 
at android.widget.FrameLayout.draw(FrameLayout.java:450) 
at android.view.View.getDisplayList(View.java:10421) 
at android.view.ViewGroup.drawChild(ViewGroup.java:2850) 
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489) 
at android.view.View.getDisplayList(View.java:10419) 
at android.view.ViewGroup.drawChild(ViewGroup.java:2850) 
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489) 
at android.view.View.draw(View.java:10985) 
at android.widget.FrameLayout.draw(FrameLayout.java:450) 
at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:2126) 
at android.view.View.getDisplayList(View.java:10421) 
at android.view.HardwareRenderer$GlRenderer.draw(HardwareRenderer.java:842) 
at android.view.ViewRootImpl.draw(ViewRootImpl.java:1943) 
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1667) 
at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2475) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:137) 
at android.app.ActivityThread.main(ActivityThread.java:4424) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:511) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
at dalvik.system.NativeStart.main(Native Method) 
+1

언제 이런 일이 발생합니까? 또한 활동 코드와 레이아웃 xml을 공유해야합니다. – helleye

+0

@helleye : 활동을로드 할 때. 나는 이것이 중첩 된 레이아웃 (Saras에 의해 아래 주석에 설명 됨)과 관련된 이슈라고 생각한다. – Ajay

답변

6

StackOverflow 예외가 발생하는 이유 중 하나는 레이아웃 중첩 때문입니다. 하지만이 문제는 최대 4.0 이하에서만 발생합니다. 그 이상의 stackoverflow 예외는 많이 발생하지 않습니다. 이 문제를 피하기 위해 xml에 중첩 된 레이아웃이 여러 개 있는지 확인하십시오. 추가로 도움을 받으려면 xml을 게시하십시오.

+0

나는 당신이 옳다고 생각한다. 나는 레이아웃 계층을 축소하고있다. 이제 해결해야합니다. 이 문제는 Android 4.1.1에서 발생합니다. 4.2.2 및 다른 ICS 및 JB 장치와 잘 작동합니다. – Ajay

+0

확인하십시오. – Ajay

+0

Android 4.2.2를 사용하는 복잡한 레이아웃 계층 구조로 인해이 오류가 발생하지만 위에 표시되지 않습니다. – Android007