【发布时间】:2013-12-10 16:06:05
【问题描述】:
我正在开发一个具有两种不同视图类型的列表视图的 android 应用程序
- 申请项目。
- 广告项目(我正在为这些项目使用 admob 广告网络)。
该应用程序在 4.1+ android 设备上运行良好。但它在 4.0.x 设备上崩溃。
只有在展示来自以下网络的广告时才会发生崩溃:
- MobFox
- 在移动中
我正在使用 chris banes pull 来刷新(你可以在上面找到它):
我已经尝试了许多其他广告网络,而且效果很好。有什么想法吗?
java.lang.StackOverflowError
at android.view.ViewGroup.getChildVisibleRect(ViewGroup.java:4312)
at android.view.ViewGroup.getChildVisibleRect(ViewGroup.java:4316)
at android.view.ViewGroup.getChildVisibleRect(ViewGroup.java:4316)
at android.view.ViewGroup.getChildVisibleRect(ViewGroup.java:4316)
at android.view.ViewGroup.getChildVisibleRect(ViewGroup.java:4316)
at android.view.ViewGroup.getChildVisibleRect(ViewGroup.java:4316)
at android.view.ViewGroup.getChildVisibleRect(ViewGroup.java:4316)
at android.view.ViewGroup.getChildVisibleRect(ViewGroup.java:4316)
at android.view.ViewGroup.getChildVisibleRect(ViewGroup.java:4316)
at android.view.ViewGroup.getChildVisibleRect(ViewGroup.java:4316)
at android.view.View.getGlobalVisibleRect(View.java:8126)
at android.webkit.WebView.calcOurVisibleRect(WebView.java:2952)
at android.webkit.WebView.calcOurContentVisibleRectF(WebView.java:2975)
at android.webkit.WebView.drawCoreAndCursorRing(WebView.java:4655)
at android.webkit.WebView.drawContent(WebView.java:4215)
at android.webkit.WebView.onDraw(WebView.java:4298)
at android.view.View.draw(View.java:11082)
at com.adsdk.sdk.banner.BannerAdView$1.draw(BannerAdView.java:185)
at android.view.View.buildDrawingCache(View.java:10799)
at android.view.ViewGroup.drawChild(ViewGroup.java:2845)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2593)
at android.view.ViewGroup.drawChild(ViewGroup.java:2989)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2593)
at android.view.ViewGroup.drawChild(ViewGroup.java:2989)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2593)
at android.view.ViewGroup.drawChild(ViewGroup.java:2989)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2593)
at android.view.ViewGroup.drawChild(ViewGroup.java:2989)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2593)
at android.view.View.draw(View.java:11085)
at android.widget.FrameLayout.draw(FrameLayout.java:462)
at android.gesture.GestureOverlayView.draw(GestureOverlayView.java:393)
at android.view.ViewGroup.drawChild(ViewGroup.java:2991)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2593)
at android.view.ViewGroup.drawChild(ViewGroup.java:2989)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2593)
at android.view.ViewGroup.drawChild(ViewGroup.java:2989)
at android.widget.ListView.drawChild(ListView.java:3219)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2593)
at android.widget.AbsListView.dispatchDraw(AbsListView.java:2099)
at android.widget.ListView.dispatchDraw(ListView.java:3214)
at com.handmark.pulltorefresh.library.PullToRefreshListView$InternalListView.d
ispatchDraw(PullToRefreshListView.java:293)
at android.view.View.draw(View.java:11085)
at android.widget.AbsListView.draw(AbsListView.java:3419)
at android.view.ViewGroup.drawChild(ViewGroup.java:2991)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2593)
at android.view.ViewGroup.drawChild(ViewGroup.java:2989)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2593)
at android.view.View.draw(View.java:11085)
at android.view.ViewGroup.drawChild(ViewGroup.java:2991)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2593)
at android.view.ViewGroup.drawChild(ViewGroup.java:2989)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2593)
at android.view.ViewGroup.drawChild(ViewGroup.java:2989)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2593)
at android.view.ViewGroup.drawChild(ViewGroup.java:2989)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2593)
at android.view.View.draw(View.java:11085)
at android.support.v4.view.ViewPager.draw(ViewPager.java:2094)
at android.view.ViewGroup.drawChild(ViewGroup.java:2991)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2593)
at android.view.ViewGroup.drawChild(ViewGroup.java:2989)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2593)
at android.view.View.draw(View.java:11085)
at android.view.ViewGroup.drawChild(ViewGroup.java:2991)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2593)
at android.view.View.draw(View.java:11085)
at android.widget.FrameLayout.draw(FrameLayout.java:462)
at android.view.ViewGroup.drawChild(ViewGroup.java:2991)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2593)
at android.view.ViewGroup.drawChild(ViewGroup.java:2989)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2593)
at net.simonvt.menudrawer.BuildLayerFrameLayout.dispatchDraw(BuildLayerFrameLayout.java:77)
at android.view.View.draw(View.java:11085)
at android.widget.FrameLayout.draw(FrameLayout.java:462)
at android.view.ViewGroup.drawChild(ViewGroup.java:2991)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2593)
at net.simonvt.menudrawer.MenuDrawer.dispatchDraw(MenuDrawer.java:667)
at android.view.View.draw(View.java:11085)
at android.view.ViewGroup.drawChild(ViewGroup.java:2991)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2593)
at net.simonvt.menudrawer.BuildLayerFrameLayout.dispatchDraw(BuildLayerFrameLayout.java:77)
at android.view.View.draw(View.java:11085)
at android.widget.FrameLayout.draw(FrameLayout.java:462)
at android.view.ViewGroup.drawChild(ViewGroup.java:2991)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2593)
at net.simonvt.menudrawer.MenuDrawer.dispatchDraw(MenuDrawer.java:667)
at android.view.View.draw(View.java:11085)
at android.view.ViewGroup.drawChild(ViewGroup.java:2991)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2593)
at android.view.View.draw(View.java:11085)
at android.widget.FrameLayout.draw(FrameLayout.java:462)
at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:2145)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:2026)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1634)
at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2442)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4441)
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)
【问题讨论】:
-
可能你的布局太复杂,或者是递归绘制。你的布局怎么样?你有很多嵌套的LinearLayout/RelativeLayout/FrameLayout吗?如果是这样,请尝试通过消除一些来扁平化您的布局,尤其是在您的列表视图单元格中。
标签: android listview admob pull-to-refresh