Calculator keeps on stopping

java file:

package com.example.calculator3;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
Button btn1, btn2, btn3, btn4, btn5, btn6, btn7, btn8, btn9, btn0;
Button btnPlus, btnMinus, btnMul, btnDiv, btnClr, btnEql;
boolean isPlus, isMinus, isDivide, isMul;
double val1, val2;
EditText tvResult;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    btnPlus = findViewById(R.id.btnPlus);
    btnMinus = findViewById(R.id.btnMinus);
    btnMul = findViewById(R.id.btnMul);
    btnDiv = findViewById(R.id.btnDiv);
    btn1 = findViewById(R.id.btn1);
    btn2 = findViewById(R.id.btn2);
    btn3 = findViewById(R.id.btn3);
    btn4 = findViewById(R.id.btn4);
    btn5 = findViewById(R.id.btn5);
    btn6 = findViewById(R.id.btn6);
    btn7 = findViewById(R.id.btn7);
    btn8 = findViewById(R.id.btn8);
    btn9 = findViewById(R.id.btn9);
    btn0 = findViewById(R.id.btn0);
    tvResult = findViewById(R.id.tvResult);

    btn0.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String result = tvResult.getText() + "0";
            tvResult.setText(result);
        }
    });
    btn1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String result = tvResult.getText() + "1";
            tvResult.setText(result);
        }
    });
    btn2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String result = tvResult.getText() + "2";
            tvResult.setText(result);
        }
    });
    btn3.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String result = tvResult.getText() + "3";
            tvResult.setText(result);
        }
    });
    btn4.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String result = tvResult.getText() + "4";
            tvResult.setText(result);
        }
    });
    btn5.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String result = tvResult.getText() + "5";
            tvResult.setText(result);
        }
    });
    btn6.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String result = tvResult.getText() + "6";
            tvResult.setText(result);
        }
    });
    btn7.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String result = tvResult.getText() + "7";
            tvResult.setText(result);
        }
    });
    btn8.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String result = tvResult.getText() + "8";
            tvResult.setText(result);
        }
    });
    btn9.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String result = tvResult.getText() + "9";
            tvResult.setText(result);
        }
    });

    btnPlus.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (tvResult.getText() == null) {
                tvResult.setText("");
            }
            val1 = Double.parseDouble(tvResult.getText().toString());
            isPlus = true;
            tvResult.setText(null);

        }
    });
    btnMinus.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (tvResult.getText() == null) {
                tvResult.setText("");
            }
            val1 = Double.parseDouble(tvResult.getText().toString());
            isMinus = true;
            tvResult.setText(null);

        }
    });
    btnDiv.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (tvResult.getText() == null) {
                tvResult.setText("");
            }
            val1 = Double.parseDouble(tvResult.getText().toString());
            isDivide = true;
            tvResult.setText(null);

        }
    });
    btnMul.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (tvResult.getText() == null) {
                tvResult.setText("");
            }
            val1 = Double.parseDouble(tvResult.getText().toString());
            isMul = true;
            tvResult.setText(null);

        }
    });
    btnEql.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            val2 = Float.parseFloat(tvResult.getText().toString());
            if (isPlus) {
                tvResult.setText(val1 + val2 + "");
                isPlus = false;
            } else if (isMinus) {
                tvResult.setText((val1 - val2) + "");
                isMinus = false;
            } else if (isMul) {
                tvResult.setText((val1 * val2) + "");
                isMul = false;
            } else if (isDivide) {
                tvResult.setText((val1 / val2) + "");
                isDivide = false;
            }
        }
    });
    btnClr.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            tvResult.setText("");
            val1 = 0.0;
            val2 = 0.0;

        }
    });


}

}

is it crashing on opening or on pressing a button?
and in button listeners of plus,minus,etc in the “if
block” either add ‘return’ or set v1=0 otherwise it
tries to convert empty string to double,thats the error.
I hope it helps.