您的视图层次结构太深。以递归方式绘制层次结构时,堆栈空间用完了,无法深入层次结构,如堆栈跟踪中所观察到的那样。
之所以仅在较早的设备中发生这种情况,是因为UI线程堆栈大小在Android2.3设备中仅为12kB,而在较新的OS版本中为16kB。
如何减少视图层次结构深度?只需尽可能避免嵌套布局。您发布的布局太复杂了,无法在此Stack
Overflow模型中为您解决这些布局(需要花费一些时间才能正确完成,并且可能太具体以至于无法帮助其他人),但是这里有一些一般性准则:
删除不必要的布局。例如,在firsttab_results.xml中,只需要
TableLayout
,RelativeLayout
和LinearLayout
顶部几乎没有用。在您的ScrollView
布局中,至少有6个嵌套布局,一个或最多两个可能就足够了。布局中的一个孩子是代码气味。在大多数情况下,可以将子级移动到其父级布局并使用边距调整布局。
通常几乎不需要将布局放在内
RelativeLayout
。相对布局在使用相对位置和子基线对齐来布置其子项方面功能强大。如果您仅需要一个嵌套布局
background
,请尝试将背景移至例如View
与嵌套布局具有相同大小的,然后在其顶部布局其他元素。请注意Android Lint警告。该工具在检测可以简化的视图层次结构复杂性方面已经变得非常出色。



