2013-05-22 4 views
4

настоящее время я использую 2 библиотеки в моем Android проекта:SlidingMenu и Android-PullToRefresh библиотеки конфликт

С Android 4.x все работает правильно, но в Android 2.x я получаю исключение StackOverflow.

Я не уверен, что это проблема с версией Android или аппаратной проблемой.

Это журнал за исключением:

05-22 13:34:30.339: E/AndroidRuntime(15179): java.lang.StackOverflowError 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.text.Styled.measureText(Styled.java:430) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.text.Layout.measureText(Layout.java:1655) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.text.Layout.getLineMax(Layout.java:689) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.text.Layout.draw(Layout.java:340) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.text.BoringLayout.draw(BoringLayout.java:365) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.widget.TextView.onDraw(TextView.java:4259) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.View.draw(View.java:6880) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.ViewGroup.drawChild(ViewGroup.java:1646) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.View.draw(View.java:6883) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.ViewGroup.drawChild(ViewGroup.java:1646) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.View.draw(View.java:6883) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.widget.FrameLayout.draw(FrameLayout.java:357) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.ViewGroup.drawChild(ViewGroup.java:1646) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.widget.AbsListView.dispatchDraw(AbsListView.java:1492) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.widget.ListView.dispatchDraw(ListView.java:3138) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.View.draw(View.java:6986) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.widget.AbsListView.draw(AbsListView.java:2600) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at com.handmark.pulltorefresh.library.PullToRefreshListView$InternalListView.draw(PullToRefreshListView.java:281) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.ViewGroup.drawChild(ViewGroup.java:1646) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.View.draw(View.java:6883) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.View.buildDrawingCache(View.java:6642) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.ViewGroup.onAnimationStart(ViewGroup.java:1259) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.ViewGroup.drawChild(ViewGroup.java:1505) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.View.draw(View.java:6883) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.support.v4.view.ViewPager.draw(ViewPager.java:1574) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.ViewGroup.drawChild(ViewGroup.java:1646) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.View.draw(View.java:6883) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.ViewGroup.drawChild(ViewGroup.java:1646) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.View.draw(View.java:6883) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.widget.FrameLayout.draw(FrameLayout.java:357) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.ViewGroup.drawChild(ViewGroup.java:1646) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.View.draw(View.java:6883) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.ViewGroup.drawChild(ViewGroup.java:1646) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.View.draw(View.java:6883) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.widget.FrameLayout.draw(FrameLayout.java:357) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.ViewGroup.drawChild(ViewGroup.java:1646) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at com.slidingmenu.lib.CustomViewAbove.dispatchDraw(CustomViewAbove.java:830) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.View.draw(View.java:6883) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.ViewGroup.drawChild(ViewGroup.java:1646) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.view.View.draw(View.java:6883) 
05-22 13:34:30.339: E/AndroidRuntime(15179): at android.widget.FrameLayout.draw(FrameLayout.java:357) 

Может кто-нибудь помочь мне решить эту проблему?

Спасибо!

ответ

3

Обычно вы видите эту ошибку, когда у вас слишком много вложенных представлений - проблема, которая усугубляется в старых версиях Android.

Однако я также заметил, что slidemenu lib может вызывать это на более старых версиях Android (3.X или более ранних). Я всегда видел эту ошибку, и она происходила из кода скользящего мензура - мои собственные взгляды были только вложенными 10-15 глубинами (не большими, но не катастрофическими). Я перешел в библиотеку ящиков меню https://github.com/SimonVT/android-menudrawer, и ошибка исчезла.

вещи, чтобы попробовать ...

  1. Пожар на андроид устройство контроля или иерархии просмотра (http://developer.android.com/tools/debugging/debugging-ui.html) и посмотреть на макеты. Если есть какие-либо мнения глубже, чем, скажем, 15-20, вы можете взглянуть на оптимизацию ваших макетов.
  2. Попробуйте поменять свое скользящее меню на личный сайт (в поддержку lib) или на тот, который я упомянул выше (что может быть проще поменять, поскольку оно соответствует аналогичному дизайну для скользящего меню - мне потребовался час) ,

Удачи вам!

+0

Thank you @Neil. Я использовал средство просмотра иерархии, и я удалил два или три уровня иерархии, что решило проблему (я изменил вложенные LinearLayouts одним RelativeLayout, например). В любом случае обе библиотеки добавляют в иерархию «дополнительные» уровни, поэтому это необходимо учитывать. – abeljus

+0

Спасибо за отзыв! У меня была точно такая же проблема, я реконструировал свои взгляды, удалив один или два LinearLayout и работаю! Главная проблема была в LinearLayouts, спасибо много, вы сохраняете мой день –

Смежные вопросы