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
Post a Comment