Android List View принудительно закрывает ошибку при прокрутке списка - PullRequest
0 голосов
/ 08 марта 2012

У меня есть просмотр списка с изображениями и текстом, который я использую Efficient adapter (настраиваемый адаптер) для заполнения списка. Я реализовал разбиение на страницы в виде списка. Я разрабатываю приложение на Android 2.1. Когда я запускаю приложение на телефоне Android 2.1, оно работает нормально. Но при работе на более высоких версиях (Android 2.2 и выше), при прокрутке списка, который он показывает «Ошибка принудительного закрытия»

Ниже я вставил ошибку: -

03-08 20:10:50.546: E/AndroidRuntime(367): FATAL EXCEPTION: main
03-08 20:10:50.546: E/AndroidRuntime(367): java.lang.StackOverflowError
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.text.SpannableStringInternal.getSpans(SpannableStringInternal.java:269)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.text.Styled.drawUniformRun(Styled.java:61)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.text.Styled.drawDirectionalRun(Styled.java:298)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.text.Styled.drawText(Styled.java:357)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.text.Layout.drawText(Layout.java:1387)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.text.Layout.draw(Layout.java:370)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.text.BoringLayout.draw(BoringLayout.java:365)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.widget.TextView.onDraw(TextView.java:4050)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.View.draw(View.java:6740)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.ViewGroup.drawChild(ViewGroup.java:1640)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.ViewGroup.drawChild(ViewGroup.java:1638)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.ViewGroup.drawChild(ViewGroup.java:1638)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.ViewGroup.drawChild(ViewGroup.java:1638)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.ViewGroup.drawChild(ViewGroup.java:1638)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.View.buildDrawingCache(View.java:6500)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.View.getDrawingCache(View.java:6288)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.ViewGroup.drawChild(ViewGroup.java:1565)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.widget.AbsListView.dispatchDraw(AbsListView.java:1365)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.widget.ListView.dispatchDraw(ListView.java:3046)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.View.draw(View.java:6846)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.widget.AbsListView.draw(AbsListView.java:2257)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.ViewGroup.drawChild(ViewGroup.java:1640)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.ViewGroup.drawChild(ViewGroup.java:1638)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.ViewGroup.drawChild(ViewGroup.java:1638)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.View.draw(View.java:6743)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.ViewGroup.drawChild(ViewGroup.java:1640)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.ViewGroup.drawChild(ViewGroup.java:1638)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.View.draw(View.java:6743)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.ViewGroup.drawChild(ViewGroup.java:1640)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.View.draw(View.java:6743)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.widget.FrameLayout.draw(FrameLayout.java:352)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.ViewGroup.drawChild(ViewGroup.java:1640)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.ViewGroup.drawChild(ViewGroup.java:1638)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.View.draw(View.java:6743)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.widget.FrameLayout.draw(FrameLayout.java:352)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.ViewGroup.drawChild(ViewGroup.java:1640)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.ViewGroup.drawChild(ViewGroup.java:1638)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.ViewGroup.drawChild(ViewGroup.java:1638)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.View.draw(View.java:6743)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.ViewGroup.drawChild(ViewGroup.java:1640)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.ViewGroup.drawChild(ViewGroup.java:1638)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.View.draw(View.java:6743)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.widget.FrameLayout.draw(FrameLayout.java:352)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.ViewGroup.drawChild(ViewGroup.java:1640)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.View.draw(View.java:6743)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.widget.FrameLayout.draw(FrameLayout.java:352)
03-08 20:10:50.546: E/AndroidRuntime(367):  at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1842)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.ViewRoot.draw(ViewRoot.java:1407)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.ViewRoot.performTraversals(ViewRoot.java:1163)
03-08 20:10:50.546: E/AndroidRuntime(367):  at android.view.ViewRoot.handleMessage(ViewRoot.ja

Ответы [ 3 ]

0 голосов
/ 08 марта 2012

Вы не разместили ни одного кода, поэтому трудно быть уверенным. Однако это кажется довольно распространенной проблемой, если вы используете метод .append() для TextView в представлении списка. Если это так, то решение, по-видимому, заключается в создании полнотекстовой строки в переменной и использовании метода .setText().

0 голосов
/ 28 марта 2012

Это сводило меня с ума. Решением для меня было максимально уменьшить глубину слоев. Где это возможно, используйте RelativeLayout с представлениями без других макетов. На первый взгляд кажется, что это не решение проблемы, но в меньшей степени это было для меня.

0 голосов
/ 08 марта 2012

Поскольку вы не разместили никакого кода, я думаю, что у вас есть бесконечный цикл или рекурсивный вызов где-то, что никогда не завершается.

...