Android计算器应用程序:不幸的是,应用程序已停止

Android计算器应用程序:不幸的是,应用程序已停止,android,error-handling,Android,Error Handling,我是adnroid的新手,正在开发一个计算器应用程序 我的应用程序没有错误,但它不工作。当我运行应用程序时,它说HesapMakinası已停止 这是我的代码。变量是土耳其语 package com.example.hesapmakinesi; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.wi

我是adnroid的新手,正在开发一个计算器应用程序

我的应用程序没有错误,但它不工作。当我运行应用程序时,它说HesapMakinası已停止

这是我的代码。变量是土耳其语

 package com.example.hesapmakinesi;


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

public class MainActivity extends Activity {
    /** Called when the activity is first created. */
    double sayi1=0;
    double sayi2=0;
    String islem;
    double sonuc=0;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button no0 = (Button)findViewById(R.id.button1);
        Button no1 = (Button)findViewById(R.id.button2);
        Button no2 = (Button)findViewById(R.id.button3);
        Button no3 = (Button)findViewById(R.id.button4);
        Button no4 = (Button)findViewById(R.id.button5);
        Button no5 = (Button)findViewById(R.id.button6);
        Button no6 = (Button)findViewById(R.id.button7);
        Button no7 = (Button)findViewById(R.id.button8);
        Button no8 = (Button)findViewById(R.id.button9);
        Button no9 = (Button)findViewById(R.id.button10);
        Button arti = (Button)findViewById(R.id.button11);
        Button eksi = (Button)findViewById(R.id.button12);
        Button carpi = (Button)findViewById(R.id.button14);
        Button bolu = (Button)findViewById(R.id.button13);
        Button esittir = (Button)findViewById(R.id.button15);
        Button sifirla = (Button)findViewById(R.id.button16);
        Button teksil =  (Button)findViewById(R.id.button17);



        final EditText islemekran = (EditText)findViewById(R.id.islemekran);

        // Her Button ve Edittext için bir nesne tanımlandı ve 
        // findViewById fonksiyonuyla nesnelere bileşenler atandı.     
        //0-9 arası sayılar için tıklama olayları ve gerekli kodlar.

        no0.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {

                islemekran.setText(islemekran.getText()+"0");               
            }
        });

        no1.setOnClickListener(new View.OnClickListener() {         
            @Override
            public void onClick(View v) {

                islemekran.setText(islemekran.getText()+"1");
            }
        });

        no2.setOnClickListener(new View.OnClickListener() { 
        @Override
        public void onClick(View v) {

            islemekran.setText(islemekran.getText()+"2");   
        }
        });

        no3.setOnClickListener(new View.OnClickListener() {     
        @Override
        public void onClick(View v) {

            islemekran.setText(islemekran.getText()+"3");
        }
        });

        no4.setOnClickListener(new View.OnClickListener() { 
        @Override
        public void onClick(View v) {

            islemekran.setText(islemekran.getText()+"4");
        }
        });

        no5.setOnClickListener(new View.OnClickListener() { 
        @Override
        public void onClick(View v) {

            islemekran.setText(islemekran.getText()+"5");
        }
        });

        no6.setOnClickListener(new View.OnClickListener() {     
        @Override
        public void onClick(View v) {

            islemekran.setText(islemekran.getText()+"6");
        }
        });

        no7.setOnClickListener(new View.OnClickListener() { 
        @Override
        public void onClick(View v) {

            islemekran.setText(islemekran.getText()+"7");
        }
        });

        no8.setOnClickListener(new View.OnClickListener() { 
        @Override
        public void onClick(View v) {

            islemekran.setText(islemekran.getText()+"8");
        }
        });

        no9.setOnClickListener(new View.OnClickListener() {     
        @Override
        public void onClick(View v) {

            islemekran.setText(islemekran.getText()+"9");
        }
        });
        // İşlemler için tıklama olayları ve gerekli kodlar

        arti.setOnClickListener(new View.OnClickListener() {        
        @Override
        public void onClick(View v) {

            try {           
                sayi1=Double.parseDouble(islemekran.getText().toString());
                islemekran.setText(""); 
                islem = "+";
            } catch (Exception e) {

            }       
        }
        });

        eksi.setOnClickListener(new View.OnClickListener() {    
        @Override
        public void onClick(View v) {

            if(!(islemekran.getText().toString().equals("")))
            {
                sayi1=Double.parseDouble(islemekran.getText().toString());
                islemekran.setText(""); 
                islem = "-";
            }       
        }
        });

        carpi.setOnClickListener(new View.OnClickListener() {       
        @Override
        public void onClick(View v) {

            if(!(islemekran.getText().toString().equals("")))
            {
                sayi1=Double.parseDouble(islemekran.getText().toString());
                islemekran.setText(""); 
                islem = "x";
            }       
        }
        });

        bolu.setOnClickListener(new View.OnClickListener() {        
        @Override
        public void onClick(View v) {

            if(!(islemekran.getText().toString().equals("")))
            {
                sayi1=Double.parseDouble(islemekran.getText().toString());
                islemekran.setText(""); 
                islem = "/";
            }
        }
        });

        esittir.setOnClickListener(new View.OnClickListener() { 
        @Override
        public void onClick(View v) {

            try {
                sayi2=Double.parseDouble((islemekran.getText().toString()));

                if(islem.equals("+"))
                {               
                    sonuc = sayi1+sayi2;
                    sayi1=0;
                    sayi2=0;
                }else if(islem.equals("-"))
                {
                    sonuc = sayi1-sayi2;
                    sayi1=0;
                    sayi2=0;
                }else if(islem.equals("x"))
                {
                    sonuc = sayi1*sayi2;
                    sayi1=0;
                    sayi2=0;
                }
                else if(islem.equals("/"))
                {
                    sonuc = sayi1/sayi2;
                    sayi1=0;
                    sayi2=0;
                }
            islemekran.setText(Double.toString(sonuc)); 
            } catch (Exception e) {         

            }   
        }
        });

        sifirla.setOnClickListener(new View.OnClickListener() {     
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                try {
                    islemekran.setText("");
                    islem="";
                    sayi1=0;
                    sayi2=0;
                } catch (Exception e) {

                }               
            }
        });

       teksil.setOnClickListener(new View.OnClickListener() {       
            @Override
            public void onClick(View v) {

                try {
                    if(!(islemekran.getText().toString().equals("")))
                    {
                        String kopyaekran = islemekran.getText().toString();
                        kopyaekran=kopyaekran.substring(0, kopyaekran.length()-1);
                        islemekran.setText(kopyaekran);
                    }else
                    {
                        islem="";
                    }                   
                } catch (Exception e) {

                }                   
            }
        });
    }



    @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;
    }
}
布局

    </EditText>

    <Button
        android:id="@+id/button2"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/button1"
        android:layout_alignBottom="@+id/button1"
        android:layout_centerHorizontal="true"
        android:text="@string/no2" />

    <Button
        android:id="@+id/button3"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/button2"
        android:layout_alignBottom="@+id/button2"
        android:layout_alignParentRight="true"
        android:layout_marginRight="18dp"
        android:text="@string/no3" />

    <Button
        android:id="@+id/button6"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/button3"
        android:layout_alignTop="@+id/button5"
        android:text="@string/no6" />

    <Button
        android:id="@+id/button8"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/button7"
        android:layout_centerHorizontal="true"
        android:text="@string/no8" />

    <Button
        android:id="@+id/button9"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/button6"
        android:layout_alignTop="@+id/button8"
        android:text="@string/no9" />

    <Button
        android:id="@+id/button12"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/button9"
        android:layout_alignTop="@+id/button11"
        android:text="@string/eksi" />

    <Button
        android:id="@+id/button14"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/button13"
        android:layout_alignBottom="@+id/button13"
        android:layout_alignLeft="@+id/button11"
        android:text="@string/arti" />

    <Button
        android:id="@+id/button15"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/button12"
        android:layout_alignTop="@+id/button14"
        android:text="@string/carpi" />

    <Button
        android:id="@+id/button1"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/editText1"
        android:layout_marginLeft="14dp"
        android:text="@string/no1" />

    <Button
        android:id="@+id/button17"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/button16"
        android:layout_alignBottom="@+id/button16"
        android:layout_alignLeft="@+id/button15"
        android:text="@string/esittir" />

    <Button
        android:id="@+id/button11"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/button10"
        android:layout_alignBottom="@+id/button10"
        android:layout_alignLeft="@+id/button8"
        android:text="@string/arti" />

    <Button
        android:id="@+id/button7"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/button4"
        android:layout_below="@+id/button4"
        android:text="@string/no7" />

    <Button
        android:id="@+id/button10"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/button7"
        android:layout_below="@+id/button7"
        android:text="@string/no0" />

    <Button
        android:id="@+id/button13"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/button10"
        android:layout_below="@+id/button10"
        android:text="@string/bolu" />

    <Button
        android:id="@+id/button16"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/button13"
        android:layout_alignRight="@+id/button14"
        android:layout_below="@+id/button14"
        android:layout_marginTop="32dp"
        android:textColor="#00FF00"
        android:text="@string/sil" />

    <Button
        android:id="@+id/button4"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/button1"
        android:layout_below="@+id/button1"
        android:text="@string/no4"/>

    <Button
        android:id="@+id/button5"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/button8"
        android:layout_alignLeft="@+id/button8"
        android:text="@string/no5" />

</RelativeLayout>

您的活动找不到id为no0、no1等的任何内容,因为在XML文件中,它们有id的button2、button3等。因此,当您尝试将
OnClickListener
设置到按钮时,会出现
NullPointerException

因此,与此相反:

Button no2 = (Button)findViewById(R.id.no2);
你需要这个:

Button no2 = (Button)findViewById(R.id.button2);

< > P/>请添加LogCad Nover将在不知道LogCCAT的情况下遍历所有代码并查找可能出现的错误。您可以发布布局XML吗?您应该至少考虑对代码进行分解。这太长了。在重构之前,至少要指出第46行。这是一个NPE,需要2秒钟才能弄清楚。我试过了,但仍然不起作用!你能更新这个问题以反映你现在的情况吗?我添加了新的logcat。顺便说一句,非常感谢,你没有指出第46行。说真的,人们都想帮忙,但你却一次又一次地掉进同一条沟里。我已经纠正了,但问题不同了。我选择了它。非常感谢:)
Button no2 = (Button)findViewById(R.id.button2);