Every time I run this code in Java Android:
package com.example.basiccalculator;
import android.os.Bundle;
public class MainActivity extends Activity 
{
LinearLayout layout1;
TextView text1;
EditText number1text;
EditText number2text;
Button multiplyButton;
Button divideButton;
Button subtractButton;
Button addButton;
TextView answerText;
@Override
protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    layout1 = new LinearLayout(this);
    text1 = new TextView(this);
    number1text = new EditText(this);
    number2text = new EditText(this);
    multiplyButton = new Button(this);
    answerText = new TextView(this);
    divideButton = new Button(this);
    layout1.setOrientation(LinearLayout.VERTICAL);
    layout1.setGravity(Gravity.CENTER_HORIZONTAL);
    answerText.setWidth(150);
    answerText.setGravity(Gravity.CENTER_HORIZONTAL);
    answerText.setTextSize(TypedValue.COMPLEX_UNIT_SP,20);
    number1text.setInputType(InputType.TYPE_CLASS_NUMBER);
    number2text.setInputType(InputType.TYPE_CLASS_NUMBER);
    multiplyButton.setOnClickListener(multiplyClicked);
    divideButton.setOnClickListener(divideClicked);
    subtractButton.setOnClickListener(subtractClicked);
    addButton.setOnClickListener(addClicked);
    answerText.setText("0");
    addButton.setText("+");
    subtractButton.setText("-");
    multiplyButton.setText("X");
    divideButton.setText("/");
    layout1.addView(number1text);
    layout1.addView(number2text);
    layout1.addView(multiplyButton);
    layout1.addView(answerText);
    layout1.addView(divideButton);
    layout1.addView(addButton);
    layout1.addView(subtractButton);
    setContentView(layout1);
    number1text.setLayoutParams(new LinearLayout.LayoutParams(550,200));
    number2text.setLayoutParams(new LinearLayout.LayoutParams(550,200));
    multiplyButton.setLayoutParams(new LinearLayout.LayoutParams(250,250));
    divideButton.setLayoutParams(new LinearLayout.LayoutParams(250, 250));
    addButton.setLayoutParams(new LinearLayout.LayoutParams(250,250));
    subtractButton.setLayoutParams(new LinearLayout.LayoutParams(250, 250));
    //Catch methods
}
private OnClickListener multiplyClicked = new OnClickListener() {
    @Override
    public void onClick(View v) {
        String firststring = number1text.getText().toString();
        String secondstring = number1text.getText().toString();
        double firstnumber = Double.parseDouble(firststring);
        double secondnumber = Double.parseDouble(secondstring);
        double result = firstnumber * secondnumber;
        String resultString = String.valueOf(result);
        answerText.setText(resultString);
    }
};
private OnClickListener divideClicked = new OnClickListener() {
    @Override
    public void onClick(View v) {
        String firststring = number1text.getText().toString();
        String secondstring = number1text.getText().toString();
        double firstnumber = Double.parseDouble(firststring);
        double secondnumber = Double.parseDouble(secondstring);
        double result = firstnumber / secondnumber;
        String resultString = String.valueOf(result);
        answerText.setText(resultString);
    }
};
private OnClickListener subtractClicked = new OnClickListener() {
    @Override
    public void onClick(View v) {
        String firststring = number1text.getText().toString();
        String secondstring = number1text.getText().toString();
        double firstnumber = Double.parseDouble(firststring);
        double secondnumber = Double.parseDouble(secondstring);
        double result = firstnumber - secondnumber;
        String resultString = String.valueOf(result);
        answerText.setText(resultString);
    }
};
private OnClickListener addClicked = new OnClickListener() {
    @Override
    public void onClick(View v) {
        String firststring = number1text.getText().toString();
        String secondstring = number1text.getText().toString();
        double firstnumber = Double.parseDouble(firststring);
        double secondnumber = Double.parseDouble(secondstring);
        double result = firstnumber + secondnumber;
        String resultString = String.valueOf(result);
        answerText.setText(resultString);
    }
};
}
I keep getting these runtime errors in my console:
- 03-24 15:27:06.300: D/dalvikvm(913): Not late-enabling CheckJNI (already on)
- 03-24 15:27:10.110: D/AndroidRuntime(913): Shutting down VM
- 03-24 15:27:10.110: W/dalvikvm(913): threadid=1: thread exiting with uncaught exception (group=0xb1a18b90)
- 03-24 15:27:10.260: D/dalvikvm(913): GC_FOR_ALLOC freed 110K, 6% free 3272K/3452K, paused 62ms, total 69ms
- 03-24 15:27:10.280: E/AndroidRuntime(913): FATAL EXCEPTION: main
- 03-24 15:27:10.280: E/AndroidRuntime(913): Process: com.example.basiccalculator, PID: 913
- 03-24 15:27:10.280: E/AndroidRuntime(913): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.basiccalculator/com.example.basiccalculator.MainActivity}: - java.lang.NullPointerException
- 03-24 15:27:10.280: E/AndroidRuntime(913):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2176)
- 03-24 15:27:10.280: E/AndroidRuntime(913):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2226)
- 03-24 15:27:10.280: E/AndroidRuntime(913):    at android.app.ActivityThread.access$700(ActivityThread.java:135)
- 03-24 15:27:10.280: E/AndroidRuntime(913):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1397)
- 03-24 15:27:10.280: E/AndroidRuntime(913):    at android.os.Handler.dispatchMessage(Handler.java:102)
- 03-24 15:27:10.280: E/AndroidRuntime(913):    at android.os.Looper.loop(Looper.java:137)
- 03-24 15:27:10.280: E/AndroidRuntime(913):    at android.app.ActivityThread.main(ActivityThread.java:4998)
- 03-24 15:27:10.280: E/AndroidRuntime(913):    at java.lang.reflect.Method.invokeNative(Native Method)
- 03-24 15:27:10.280: E/AndroidRuntime(913):    at java.lang.reflect.Method.invoke(Method.java:515)
- 03-24 15:27:10.280: E/AndroidRuntime(913):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)
- 03-24 15:27:10.280: E/AndroidRuntime(913):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593)
- 03-24 15:27:10.280: E/AndroidRuntime(913):    at dalvik.system.NativeStart.main(Native Method)
- 03-24 15:27:10.280: E/AndroidRuntime(913): Caused by: java.lang.NullPointerException
- 03-24 15:27:10.280: E/AndroidRuntime(913):    at com.example.basiccalculator.MainActivity.onCreate(MainActivity.java:60)
- 03-24 15:27:10.280: E/AndroidRuntime(913):    at android.app.Activity.performCreate(Activity.java:5243)
- 03-24 15:27:10.280: E/AndroidRuntime(913):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
- 03-24 15:27:10.280: E/AndroidRuntime(913):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2140)
- 03-24 15:27:10.280: E/AndroidRuntime(913):    ... 11 more
But when I remove the catch methods, it seems to run fine. Does anyone know why I keep getting these runtime errors?
 
     
     
     
    