Конфликты в SlidingMenu и Android-PullToRefresh

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

  • SlidingMenu: https://github.com/jfeinstein10/SlidingMenu
  • Android-PullToRefresh: https://github.com/chrisbanes/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) 

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

Спасибо!

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

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

    Что нужно попробовать …

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

    Удачи!