2013-05-29 74 views
0

我試圖運行Android模擬器這個應用程序,但它顯示「不幸的是,應用程序已停止工作」:Android應用已不幸停止

package com.example.myapp; 

import android.os.Bundle; 
import android.app.Activity; 
import android.view.Menu; 
import android.view.View; 
import android.widget.Button; 
import android.widget.TextView; 

public class MainActivity extends Activity { 

    static int counter; 
    static Button badd, bsub; 
    static TextView text; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     counter=0; 
     badd=(Button)findViewById(R.id.button1); 
     bsub=(Button)findViewById(R.id.button2); 
     text=(TextView) findViewById(R.id.textView1); 

     badd.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       counter++; 
       text.setText("your total is :"+counter); 
      } 
     }); 


     bsub.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       counter--; 
       text.setText("your total is :"+counter); 



      } 
     }); 


    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 

} 

XML代碼:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="start" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".MainActivity" > 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:text="your total is 0" 
     android:textSize="65sp" 

     /> 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="100sp" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/textView1" 
     android:layout_below="@+id/textView1" 
     android:layout_gravity="center" 
     android:text="add" 
      /> 

    <Button 
     android:layout_width="100sp" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/button2" 
     android:layout_below="@+id/textView1" 
     android:layout_marginLeft="117dp" 
     android:text="subtract" /> 

</RelativeLayout> 

登錄貓展以下內容:

 
caused by java.lang.nullpointexception 

回答

1

添加機器人:在你的ID = 「@ + ID/BUTTON2」第二個按鈕

<Button 
    android:id="@+id/button2" 
    android:layout_width="100sp" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/button1" 
    android:layout_below="@+id/textView1" 
    android:layout_marginLeft="117dp" 
    android:text="subtract" /> 

問題沒有給誤差以下在第二按鈕視圖的代碼行中的任何「沒有定義ID」。

android:layout_alignLeft="@+id/button2" 

你們雖然以 「@ + ID」 宣稱它會創建一個新的ID。並且不會在活動代碼中給出任何錯誤。用我上面寫的代碼改變這個代碼。

+0

感謝他們在爲第二個按鈕添加ID之後工作。感謝 – user2429908

+0

@ user2429908,很高興幫助您,但接受並投票回答,以便其他Google員工可以從中獲益。 :) –

0

對於第二個按鈕添加

android:id="@+id/button2" 

,改變

android:layout_alignLeft="@+id/button1" 

android:layout_alignLeft="@id/button1" 

更改您的佈局如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="start" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".MainActivity" > 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:text="your total is 0" 
     android:textSize="65sp" 

     /> 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="100sp" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/textView1" 
     android:layout_below="@+id/textView1" 
     android:layout_gravity="center" 
     android:text="add" 
      /> 

    <Button 
     android:id="@+id/button2" 
     android:layout_width="100sp" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@id/button1" 
     android:layout_below="@+id/textView1" 
     android:layout_marginLeft="117dp" 
     android:text="subtract" /> 

</RelativeLayout>