【问题标题】:SlidingMenu and Android-PullToRefresh libraries conflictSlidingMenu 和 Android-PullToRefresh 库冲突
【发布时间】:2013-05-22 11:47:21
【问题描述】:

我目前在我的 Android 项目中使用 2 个库:

在 Android 4.x 中一切正常,但在 Android 2.x 中我得到了 StackOverflow 异常。

我不确定是安卓版本问题还是硬件问题。

这是异常的日志:

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 libraries conflicting-libraries


    【解决方案1】:

    当您有太多嵌套视图时,您通常会看到此错误 - 这个问题在旧版本的 Android 上更加严重。

    但是,我还注意到,slidingmenu 库可能会在旧版本的 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. 尝试将您的滑动菜单库换成谷歌自己的(在支持库中)或我上面提到的那个(这可能更容易更换,因为它遵循与滑动菜单类似的设计 - 我花了大约一个小时) .

    祝你好运!

    【讨论】:

    • 谢谢@Neil。我使用了层次结构查看器并删除了两个或三个层次结构级别,从而解决了这个问题(例如,我将嵌套的 LinearLayouts 更改为单个 RelativeLayout)。无论如何,这两个库都在层次结构中添加了“额外”级别,因此这是需要考虑的一点。
    • 感谢您的提示!我遇到了完全相同的问题,我改造了我的视图,删除了一个或两个 LinearLayout 并且工作正常!主要问题是LinearLayouts,再次感谢,你救了我的一天
    猜你喜欢
    • 2014-03-20
    • 2021-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-20
    • 1970-01-01
    相关资源
    最近更新 更多