java - android app keeps crashing "unfortunately,Calculator Has stopped" -
i keep getting error log when try run following code there error message:
03-11 16:00:08.350: e/androidruntime(842): fatal exception: main 03-11 16:00:08.350: e/androidruntime(842): java.lang.runtimeexception: unable start activity componentinfo{com.example.calculator/com.example.calculator.mainactivity}: java.lang.numberformatexception: invalid double: "" 03-11 16:00:08.350: e/androidruntime(842): @ android.app.activitythread.performlaunchactivity(activitythread.java:2180) 03-11 16:00:08.350: e/androidruntime(842): @ android.app.activitythread.handlelaunchactivity(activitythread.java:2230) 03-11 16:00:08.350: e/androidruntime(842): @ android.app.activitythread.access$600(activitythread.java:141) 03-11 16:00:08.350: e/androidruntime(842): @ android.app.activitythread$h.handlemessage(activitythread.java:1234) 03-11 16:00:08.350: e/androidruntime(842): @ android.os.handler.dispatchmessage(handler.java:99) 03-11 16:00:08.350: e/androidruntime(842): @ android.os.looper.loop(looper.java:137) 03-11 16:00:08.350: e/androidruntime(842): @ android.app.activitythread.main(activitythread.java:5041) 03-11 16:00:08.350: e/androidruntime(842): @ java.lang.reflect.method.invokenative(native method) 03-11 16:00:08.350: e/androidruntime(842): @ java.lang.reflect.method.invoke(method.java:511) 03-11 16:00:08.350: e/androidruntime(842): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:793) 03-11 16:00:08.350: e/androidruntime(842): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:560) 03-11 16:00:08.350: e/androidruntime(842): @ dalvik.system.nativestart.main(native method) 03-11 16:00:08.350: e/androidruntime(842): caused by: java.lang.numberformatexception: invalid double: "" 03-11 16:00:08.350: e/androidruntime(842): @ java.lang.stringtoreal.invalidreal(stringtoreal.java:63) 03-11 16:00:08.350: e/androidruntime(842): @ java.lang.stringtoreal.parsedouble(stringtoreal.java:248) 03-11 16:00:08.350: e/androidruntime(842): @ java.lang.double.parsedouble(double.java:295) 03-11 16:00:08.350: e/androidruntime(842): @ com.example.calculator.mainactivity.oncreate(mainactivity.java:21) 03-11 16:00:08.350: e/androidruntime(842): @ android.app.activity.performcreate(activity.java:5104) 03-11 16:00:08.350: e/androidruntime(842): @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1080) 03-11 16:00:08.350: e/androidruntime(842): @ android.app.activitythread.performlaunchactivity(activitythread.java:2144) 03-11 16:00:08.350: e/androidruntime(842): ... 11 more 03-11 16:05:08.990: e/androidruntime(959): fatal exception: main 03-11 16:05:08.990: e/androidruntime(959): java.lang.runtimeexception: unable start activity componentinfo{com.example.calculator/com.example.calculator.mainactivity}: java.lang.numberformatexception: invalid double: "" 03-11 16:05:08.990: e/androidruntime(959): @ android.app.activitythread.performlaunchactivity(activitythread.java:2180) 03-11 16:05:08.990: e/androidruntime(959): @ android.app.activitythread.handlelaunchactivity(activitythread.java:2230) 03-11 16:05:08.990: e/androidruntime(959): @ android.app.activitythread.access$600(activitythread.java:141) 03-11 16:05:08.990: e/androidruntime(959): @ android.app.activitythread$h.handlemessage(activitythread.java:1234) 03-11 16:05:08.990: e/androidruntime(959): @ android.os.handler.dispatchmessage(handler.java:99) 03-11 16:05:08.990: e/androidruntime(959): @ android.os.looper.loop(looper.java:137) 03-11 16:05:08.990: e/androidruntime(959): @ android.app.activitythread.main(activitythread.java:5041) 03-11 16:05:08.990: e/androidruntime(959): @ java.lang.reflect.method.invokenative(native method) 03-11 16:05:08.990: e/androidruntime(959): @ java.lang.reflect.method.invoke(method.java:511) 03-11 16:05:08.990: e/androidruntime(959): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:793) 03-11 16:05:08.990: e/androidruntime(959): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:560) 03-11 16:05:08.990: e/androidruntime(959): @ dalvik.system.nativestart.main(native method) 03-11 16:05:08.990: e/androidruntime(959): caused by: java.lang.numberformatexception: invalid double: "" 03-11 16:05:08.990: e/androidruntime(959): @ java.lang.stringtoreal.invalidreal(stringtoreal.java:63) 03-11 16:05:08.990: e/androidruntime(959): @ java.lang.stringtoreal.parsedouble(stringtoreal.java:248) 03-11 16:05:08.990: e/androidruntime(959): @ java.lang.double.parsedouble(double.java:295) 03-11 16:05:08.990: e/androidruntime(959): @ com.example.calculator.mainactivity.oncreate(mainactivity.java:21) 03-11 16:05:08.990: e/androidruntime(959): @ android.app.activity.performcreate(activity.java:5104) 03-11 16:05:08.990: e/androidruntime(959): @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1080) 03-11 16:05:08.990: e/androidruntime(959): @ android.app.activitythread.performlaunchactivity(activitythread.java:2144) 03-11 16:05:08.990: e/androidruntime(959): ... 11 more mainactivity.java
package com.example.calculator; import android.os.bundle; import android.app.activity; import android.view.menu; import android.widget.edittext; import android.widget.textview; public class mainactivity extends activity { @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); textview tprincipalamount = (textview)findviewbyid(r.id.tprincipalamount); edittext editprincipalamount= (edittext)findviewbyid(r.id.editprincipalamount); string string_principal_amount = editprincipalamount.gettext().tostring(); double dbprincipalamount = double.parsedouble(string_principal_amount); textview tinterestrate =(textview) findviewbyid(r.id.tinterestrate); edittext editinterestrate =(edittext) findviewbyid(r.id.editinterestrate); string string_editinterestrate =editinterestrate.gettext().tostring(); double dbinterestrate = double.parsedouble(string_editinterestrate); } } activity_main.xml
<relativelayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingbottom="@dimen/activity_vertical_margin" android:paddingleft="@dimen/activity_horizontal_margin" android:paddingright="@dimen/activity_horizontal_margin" android:paddingtop="@dimen/activity_vertical_margin" tools:context=".mainactivity" > <textview android:id="@+id/tprincipalamount" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignparentleft="true" android:layout_alignparenttop="true" android:layout_marginleft="14dp" android:text="principal amount ($)" /> <edittext android:id="@+id/editprincipalamount" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignleft="@+id/tprincipalamount" android:layout_below="@+id/tprincipalamount" android:ems="10" /> <textview android:id="@+id/tinterestrate" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignleft="@+id/editprincipalamount" android:layout_below="@+id/editprincipalamount" android:layout_margintop="26dp" android:text="interest rate" /> <edittext android:id="@+id/editinterestrate" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignparentleft="true" android:layout_below="@+id/tinterestrate" android:layout_margintop="27dp" android:ems="10" /> </relativelayout> thank you
the string want parse double not contain value that's why getting numberformatexception. should check string contains valid value. now, check below...
@override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); textview tprincipalamount = (textview)findviewbyid(r.id.tprincipalamount); edittext editprincipalamount= (edittext)findviewbyid(r.id.editprincipalamount); string string_principal_amount = editprincipalamount.gettext().tostring(); double dbprincipalamount = 0; if (string_principal_amount != null && !string_principal_amount.equals("")) { dbprincipalamount = double.parsedouble(string_principal_amount); } textview tinterestrate =(textview) findviewbyid(r.id.tinterestrate); edittext editinterestrate =(edittext) findviewbyid(r.id.editinterestrate); string string_editinterestrate =editinterestrate.gettext().tostring(); double dbinterestrate = 0; if (string_editinterestrate != null && !string_editinterestrate.equals("")) { dbinterestrate = double.parsedouble(string_editinterestrate); } }
Comments
Post a Comment