Android 表布局中的空指针异常



我使用 Eclipse 为我正在创建的 Android 应用程序创建了一个 xml 文件。在完成所有布局并执行一些编码等操作后,我发现最终产品需要处于早期的 API 级别(确切地说是 10 个)。所以我开始回滚代码和 xml 文件的过程,但遇到了一个我无法解决的问题,并且似乎没有任何文档。我创建了一个表格布局,并且有许多表格行。当我尝试在虚拟设备上运行该程序时,我得到了一个关于 TableRow.measureNullChild(int) 函数的空指针异常,其代码为:

@Override
int measureNullChild(int childIndex) {
return mConstrainedColumnWidths[childIndex];
}

显然问题出在某个地方,但我不确定确切的细节,并且想知道是否有其他人遇到过这个问题。我现在将发布导致崩溃的 xml 文件:

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/livelayout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
<TableRow
    android:id="@+id/tableRow8"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingTop="5dp" >
     <RelativeLayout
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:background="@drawable/hope" >
    </RelativeLayout>
</TableRow>
<TableRow
    android:id="@+id/tableRow7"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >
    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="30dp"
        android:layout_gravity="center_vertical"
        android:layout_margin="0dp"
        android:gravity="center"
        android:paddingLeft="0dp"
        android:paddingTop="0dp"
        android:text="@string/us"
        android:textSize="28dp"
        android:textColor="#CC7F32" />
    <FrameLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >
        <TextView
            android:id="@+id/TextView01"
            android:layout_width="70dp"
            android:layout_height="30dp"
            android:layout_margin="0dp"
            android:gravity="center"
            android:paddingLeft="0dp"
            android:paddingTop="0dp"
            android:text="@string/them"
            android:textSize="26dp"
            android:textColor="#CC7F32" />
    </FrameLayout>
</TableRow>
<TableRow
    android:id="@+id/tableRow2"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center_vertical"
    android:visibility="visible" >
    <Button
        android:id="@+id/us2"
        android:layout_width="70dp"
        android:layout_height="50dp"
        android:text="@string/us2" />
    <Button
        android:id="@+id/us2made"
        android:layout_width="70dp"
        android:layout_height="50dp"
        android:text="@string/us2m" />
    <Button
        android:id="@+id/button3"
        android:layout_width="70dp"
        android:layout_height="50dp"
        android:text="@string/them2" />
    <Button
        android:id="@+id/button4"
        android:layout_width="70dp"
        android:layout_height="50dp"
        android:text="@string/them2m" />
</TableRow>
<TableRow
    android:id="@+id/tableRow1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center_vertical" >
    <Button
        android:id="@+id/button5"
        android:layout_width="70dp"
        android:layout_height="50dp"
        android:text="@string/us1" />
    <Button
        android:id="@+id/button6"
        android:layout_width="70dp"
        android:layout_height="50dp"
        android:text="@string/us1m" />
    <Button
        android:id="@+id/button7"
        android:layout_width="70dp"
        android:layout_height="50dp"
        android:text="@string/them1" />
    <Button
        android:id="@+id/button8"
        android:layout_width="70dp"
        android:layout_height="50dp"
        android:text="@string/them1m" />
</TableRow>
<TableRow
    android:id="@+id/tableRow3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center_vertical" >
    <Button
        android:id="@+id/button9"
        android:layout_width="70dp"
        android:layout_height="50dp"
        android:text="@string/us3" />
    <Button
        android:id="@+id/button10"
        android:layout_width="70dp"
        android:layout_height="50dp"
        android:text="@string/us3m" />
    <Button
        android:id="@+id/button11"
        android:layout_width="70dp"
        android:layout_height="50dp"
        android:text="@string/them3" />
    <Button
        android:id="@+id/button12"
        android:layout_width="70dp"
        android:layout_height="50dp"
        android:text="@string/them3m" />
</TableRow>
<TableRow
    android:id="@+id/tableRow4"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center_vertical" >
    <Button
        android:id="@+id/button13"
        android:layout_width="70dp"
        android:layout_height="50dp"
        android:text="@string/usOreb" />
    <Button
        android:id="@+id/button14"
        android:layout_width="70dp"
        android:layout_height="50dp"
        android:text="@string/usXreb" />
    <Button
        android:id="@+id/button15"
        android:layout_width="70dp"
        android:layout_height="50dp"
        android:text="@string/themOreb" />
    <Button
        android:id="@+id/button16"
        android:layout_width="70dp"
        android:layout_height="50dp"
        android:text="@string/themXreb" />
</TableRow>
<TableRow
    android:id="@+id/tableRow5"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center_vertical" >
    <Button
        android:id="@+id/button17"
        android:layout_width="70dp"
        android:layout_height="50dp"
        android:text="@string/us2f" />
    <Button
        android:id="@+id/button18"
        android:layout_width="70dp"
        android:layout_height="50dp"
        android:text="@string/us2fm" />
    <Button
        android:id="@+id/button19"
        android:layout_width="70dp"
        android:layout_height="50dp"
        android:padding="5dp"
        android:text="@string/them2f" />
    <Button
        android:id="@+id/button20"
        android:layout_width="70dp"
        android:layout_height="50dp"
        android:padding="5dp"
        android:text="@string/them2fm" />
</TableRow>
<TableRow
    android:id="@+id/tableRow6"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingTop="30dp" >
</TableRow>
<FrameLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingLeft="60dp"
    android:paddingRight="60dp" >
    <Button
        android:id="@+id/button21"
        android:layout_width="201dp"
        android:layout_height="match_parent"
        android:text="Button" />
</FrameLayout>
<FrameLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingLeft="60dp"
    android:paddingRight="60dp"
    android:paddingTop = "15dp" >
    <Button
        android:id="@+id/Button01"
        android:layout_width="201dp"
        android:layout_height="match_parent"
        android:text="Button" />
</FrameLayout>

</TableLayout>

任何帮助都绝对很棒,因为我已经被困在这里两天了,一直无法弄清楚出了什么问题。如果我这样做,我一定会在这里发布,以便谷歌员工在发生这种情况时可以找到答案。提前致谢

编辑:删除除一行之外的所有包含内容的行后,我在同一位置收到相同的错误

但当然,这太简单了,想起来也想不起来。我忘了将姜饼布局 ID 换成冰淇淋三明治布局 ID,因此它试图在 10 级环境中加载 API 15 布局。交换ID完全解决了这个问题。

最新更新