2012-06-08 24 views
0

我使用Eclipse爲我正在創建的Android應用程序創建了一個xml文件。完成所有佈局並編寫代碼之後,我發現最終產品需要處於較早的API級別(準確的說是10級)。所以我開始回滾代碼和xml文件,但遇到了一個我無法解決的問題,似乎沒有任何文檔。 我創建了一個表格佈局,並有許多表格行。當我嘗試運行虛擬設備上的程序,我給一個空指針異常與問候到TableRow.measureNullChild(INT)功能,代碼爲:Android表格佈局中的空指針異常

@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> 

任何幫助將是絕對精彩,因爲我已經困在這裏喜歡兩天了,一直沒能找出什麼是錯的。如果我這樣做,我一定會在這裏發佈,這樣Google員工可以在發生這種情況時找到答案。在此先感謝

編輯: 刪除所有行,但一個之後,它包含的內容,我得到了同樣的錯誤在同一地點

+0

而'mConstrainedColumnWidths'是...?並初始化時/如何? –

+0

如果發佈的代碼中存在異常,則唯一的解釋是調用該方法時mConstrainedColumnWidths爲null。 –

+0

我發現這種情況發生的唯一方法是在'measure'之前調用'layout'。你是否明確地爲表格或其任何行調用'layout'(或'onLayout')? –

回答

1

但是,當然,這是一件太簡單了,想到的。我忘記交換Ice Cream Sandwich的薑餅佈局ID,所以它試圖在10級環境下加載API 15佈局。交換ID完全解決了這個問題。