2011-07-22 72 views
0

我對Android編程非常陌生,並且有一個大致的開始。我爲程序創建了一個通用的UI,並沒有改變任何實際的Java代碼。每當我嘗試在模擬器中加載應用程序以查看它的外觀時,該應用程序就會崩潰。有沒有人有一個想法,爲什麼會發生?當我嘗試將它加載到仿真器中時,Android應用程序崩潰

此外,我從教程製作的其他應用程序完美無缺,只是最近爲其創建佈局的應用程序無法正常工作。

這裏是Java代碼

package com.nubs.tableposv0_1; 

import android.app.Activity; 
import android.os.Bundle; 

public class TablePOSv0_1Activity extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
    } 
} 

這裏是更新的XML代碼

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="horizontal" 
    android:weightSum="5" 
    > 
    <LinearLayout 
     android:layout_height="fill_parent" 
     android:layout_width="fill_parent" 
     android:layout_weight="1" 
     android:orientation="vertical" 
     > 
     <Button android:id="@+id/item1" 
      android:layout_weight="1" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:text="Item 1" 
      /> 
     <Button android:id="@+id/item2" 
      android:layout_weight="1" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:text="Item 2" 
      /> 
     <Button android:id="@+id/item3" 
      android:layout_weight="1" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:text="Item 3" 
      /> 
     <Button android:id="@+id/item4" 
      android:layout_weight="1" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:text="Item 4" 
      /> 
     <Button android:id="@+id/item5" 
      android:layout_weight="1" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:text="Item 5" 
      /> 
    </LinearLayout> 
    <LinearLayout 
     android:layout_height="fill_parent" 
     android:layout_width="fill_parent" 
     android:layout_weight="1" 
     android:orientation="vertical" 
     > 
     <Button android:id="@+id/item6" 
      android:layout_weight="1" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:text="Item 6" 
      /> 
     <Button android:id="@+id/item7" 
      android:layout_weight="1" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:text="Item 7" 
      /> 
     <Button android:id="@+id/item8" 
      android:layout_weight="1" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:text="Item 8" 
      /> 
     <Button android:id="@+id/item9" 
      android:layout_weight="1" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:text="Item 9" 
      /> 
     <Button android:id="@+id/item10" 
      android:layout_weight="1" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:text="Item 10" 
      /> 
    </LinearLayout> 
    <LinearLayout 
     android:layout_height="fill_parent" 
     android:layout_width="fill_parent" 
     android:layout_weight="3" 
     android:orientation="vertical" 
     android:weightSum="9" 
     > 
     <TableLayout 
      android:id="@+id/items_table" 
      android:layout_width="fill_parent" 
      android:layout_weight="4" 
      > 
      </TableLayout> 
     <LinearLayout 
      android:layout_width="fill_parent" 
      android:orientation="horizontal" 
      android:layout_weight="1" 
      android:weightSum="3" 
      > 
      <Button android:id="@+id/calc1" 
       android:layout_weight="1" 
       android:layout_height="fill_parent" 
       android:text="1" 
       /> 
      <Button android:id="@+id/calc2" 
       android:layout_weight="1" 
       android:layout_height="fill_parent" 
       android:text="2" 
       /> 
      <Button android:id="@+id/calc3" 
       android:layout_weight="1" 
       android:layout_height="fill_parent" 
       android:text="3" 
       /> 
     </LinearLayout> 
     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:orientation="horizontal" 
      android:layout_weight="1" 
      android:weightSum="3" 
      > 
      <Button android:id="@+id/calc4" 
       android:layout_weight="1" 
       android:layout_height="fill_parent" 
       android:text="4" 
       /> 
      <Button android:id="@+id/calc5" 
       android:layout_weight="1" 
       android:layout_height="fill_parent" 
       android:text="5" 
       /> 
      <Button android:id="@+id/calc6" 
       android:layout_weight="1" 
       android:layout_height="fill_parent" 
       android:text="6" 
       /> 
     </LinearLayout> 
     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:orientation="horizontal" 
      android:layout_weight="1" 
      android:weightSum="3" 
      > 
      <Button android:id="@+id/calc7" 
       android:layout_weight="1" 
       android:layout_height="fill_parent" 
       android:text="7" 
       /> 
      <Button android:id="@+id/calc8" 
       android:layout_weight="1" 
       android:layout_height="fill_parent" 
       android:text="8" 
       /> 
      <Button android:id="@+id/calc9" 
       android:layout_weight="1" 
       android:layout_height="fill_parent" 
       android:text="9" 
       /> 
     </LinearLayout> 
     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:orientation="horizontal" 
      android:layout_weight="1" 
      android:weightSum="3" 
      > 
      <Button android:id="@+id/calc0" 
       android:layout_weight="2" 
       android:layout_height="fill_parent" 
       android:text="0" 
       /> 
      <Button android:id="@+id/calcdec" 
       android:layout_weight="1" 
       android:layout_height="fill_parent" 
       android:text="." 
       /> 
     </LinearLayout> 
     <Button android:id="@+id/total" 
      android:layout_weight="1" 
      android:layout_width="fill_parent" 
      android:text="Total" 
      /> 
    </LinearLayout> 
</LinearLayout> 

的logcat:

07-22 01:24:41.793: ERROR/AndroidRuntime(392):  at android.app.Activity.setContentView(Activity.java:1647) 
07-22 01:24:41.793: ERROR/AndroidRuntime(392):  at com.nubs.tableposv0_1.TablePOSv0_1Activity.onCreate(TablePOSv0_1Activity.java:15) 
07-22 01:24:41.793: ERROR/AndroidRuntime(392):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
07-22 01:24:41.793: ERROR/AndroidRuntime(392):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 
07-22 01:24:41.793: ERROR/AndroidRuntime(392):  ... 11 more 
07-22 01:25:41.482: ERROR/DefContainer(224): Couldn't copy file: /data/local/tmp/TablePOSv0_1.apk 
+0

這並不是很多。嘗試隔離它是否是您的代碼或開發工具。 –

+0

我添加了佈局的XML代碼。我沒有碰過任何JAVA代碼,但我也加了。 – Jim

+0

你爲什麼編輯出XML佈局?!?請不要改變你的東西那樣......我正在看它是否可以發現某些東西...如果這是解決方案,建議通過點擊綠色的勾號來接受答案。 – davidcesarino

回答

1

如果我沒有記錯,LinearLayouts既需要android:layout_widthandroid:layout_height尺寸。

在您的XML中,有幾個沒有android:layout_width

此外,下次發佈您的Logcat輸出。在這些情況下,它們比代碼本身更有用。這就是爲什麼我只是在這裏猜測發生在我身上的一個問題。

//編輯:

如果它仍然會崩潰,嘗試以包括所有部件兩個維度。我不記得是否只是需要兩個尺寸的所有小部件的佈局。而puh-lease,給我們logcat。 :-)

+0

是的,除特殊情況外,所有小部件都需要維度(在'TableRow'內部)。 –

+0

向所有小部件添加高度和寬度解決了問題。謝謝你們! – Jim

+0

我注意到你說過添加兩個維度會讓你的佈局變得笨拙。真相是,我看到你正在試圖「減肥」你的佈局。嘗試在要加權的維上使用「wrap_content」而不是「fill_parent」。例如,在第一行按鈕上,您希望高度尺寸爲wrap_content,因爲您正試圖在外部LinearLayout中對垂直尺寸加權。有些人在加權時也嘗試「0」作爲尺寸。試着去嘗試一下,看看哪些情況更好。 – davidcesarino

相關問題