Runtime Error with Java Android (Eclipse): -


every time run 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 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 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 start activity componentinfo{com.example.basiccalculator/com.example.basiccalculator.mainactivity}: - java.lang.nullpointerexception - 03-24 15:27:10.280: e/androidruntime(913):    @ android.app.activitythread.performlaunchactivity(activitythread.java:2176) - 03-24 15:27:10.280: e/androidruntime(913):    @ android.app.activitythread.handlelaunchactivity(activitythread.java:2226) - 03-24 15:27:10.280: e/androidruntime(913):    @ android.app.activitythread.access$700(activitythread.java:135) - 03-24 15:27:10.280: e/androidruntime(913):    @ android.app.activitythread$h.handlemessage(activitythread.java:1397) - 03-24 15:27:10.280: e/androidruntime(913):    @ android.os.handler.dispatchmessage(handler.java:102) - 03-24 15:27:10.280: e/androidruntime(913):    @ android.os.looper.loop(looper.java:137) - 03-24 15:27:10.280: e/androidruntime(913):    @ android.app.activitythread.main(activitythread.java:4998) - 03-24 15:27:10.280: e/androidruntime(913):    @ java.lang.reflect.method.invokenative(native method) - 03-24 15:27:10.280: e/androidruntime(913):    @ java.lang.reflect.method.invoke(method.java:515) - 03-24 15:27:10.280: e/androidruntime(913):    @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:777) - 03-24 15:27:10.280: e/androidruntime(913):    @ com.android.internal.os.zygoteinit.main(zygoteinit.java:593) - 03-24 15:27:10.280: e/androidruntime(913):    @ 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):    @ com.example.basiccalculator.mainactivity.oncreate(mainactivity.java:60) - 03-24 15:27:10.280: e/androidruntime(913):    @ android.app.activity.performcreate(activity.java:5243) - 03-24 15:27:10.280: e/androidruntime(913):    @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1087) - 03-24 15:27:10.280: e/androidruntime(913):    @ android.app.activitythread.performlaunchactivity(activitythread.java:2140) - 03-24 15:27:10.280: e/androidruntime(913):    ... 11 more 

but when remove catch methods, seems run fine. know why keep getting these runtime errors?

looks did not initialize subtractbutton before setting onclicklistener here:

subtractbutton.setonclicklistener(subtractclicked); 

the same addbutton.

==> calling methods on not initialized objects lead nullpointerexception (npe)

btw: may want use layout xml. wonder why never make use of findviewbyid method elements inside r.layout.activity_main ?


Comments

Popular posts from this blog

android - Get AccessToken using signpost OAuth without opening a browser (Two legged Oauth) -

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: mockito -

google shop client API returns 400 bad request error while adding an item -