Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener -
this question has answer here:
- what nullpointerexception, , how fix it? 12 answers
enter image description herewhen open android application crashes. here code:
import android.manifest; import android.content.intent; import android.content.pm.packagemanager; import android.location.location; import android.location.locationlistener; import android.location.locationmanager; import android.os.build; import android.provider.settings; import android.support.v4.app.activitycompat; import android.support.v7.app.appcompatactivity; import android.os.bundle; import android.view.view; import android.widget.button; import android.widget.textview; public class mainactivity extends appcompatactivity { private button requestbutton; private textview coordinatetext; private locationmanager locationmanager; private locationlistener locationlistener; private button buttonmap; private button buttoncurrentlocation; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); //reference requestbutton requestbutton = (button) findviewbyid(r.id.requestbutton); //reference coordtext coordinatetext = (textview) findviewbyid(r.id.coordinatetext); // creating button object buttonmap buttonmap = (button) findviewbyid(r.id.buttonmap); //create button object buttoncurrentlocation buttoncurrentlocation = (button) findviewbyid(r.id.buttoncurrentlocation); //action listener buttonmap buttonmap.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { intent intent1 = new intent(getapplicationcontext(), mapsactivity.class); startactivity(intent1); } }); // action listener buttoncurrentlocation buttoncurrentlocation.setonclicklistener(new view.onclicklistener() { public void onclick(view v) { intent = new intent(getapplicationcontext(), gpsshow.class); startactivity(i); } }); //initialize locationmanager locationmanager = (locationmanager) getsystemservice(location_service); //initialize locationlistener locationlistener = new locationlistener() { @override public void onlocationchanged(location location) { coordinatetext.append("\n" + location.getlatitude() + " " + location.getlongitude()); } @override public void onstatuschanged(string provider, int status, bundle extras) { } @override public void onproviderenabled(string provider) { } @override public void onproviderdisabled(string provider) { intent intent2 = new intent(settings.action_location_source_settings); startactivity(intent2); } }; if (activitycompat.checkselfpermission(this, manifest.permission.access_fine_location) != packagemanager.permission_granted && activitycompat.checkselfpermission(this, manifest.permission.access_coarse_location) != packagemanager.permission_granted) { if (build.version.sdk_int >= build.version_codes.m) { requestpermissions(new string[]{ manifest.permission.access_fine_location, manifest.permission.access_coarse_location, manifest.permission.internet }, 10); } return; } else { configurebutton(); } } //outside oncreate method public void onrequestpermissionresult(int requestcode, string[] permissions, int[] grantresults) { switch (requestcode) { case 10: if (grantresults.length > 0 && grantresults[0] == packagemanager.permission_granted) configurebutton(); return; } } private void configurebutton() { requestbutton.setonclicklistener(new view.onclicklistener() { public void onclick(view view) { locationmanager.requestlocationupdates("gps", 5000, 0, locationlistener); } }); } }
here logcat:
01-15 17:10:18.088 2340-2340/com.example.matt.palt e/androidruntime: fatal exception: main process: com.example.matt.palt, pid: 2340 java.lang.runtimeexception: unable start activity componentinfo{com.example.matt.palt/com.example.matt.palt.mainactivity}: java.lang.nullpointerexception: attempt invoke virtual method 'void android.widget.button.setonclicklistener(android.view.view$onclicklistener)' on null object reference @ android.app.activitythread.performlaunchactivity(activitythread.java:2416) @ android.app.activitythread.handlelaunchactivity(activitythread.java:2476) @ android.app.activitythread.-wrap11(activitythread.java) @ android.app.activitythread$h.handlemessage(activitythread.java:1344) @ android.os.handler.dispatchmessage(handler.java:102) @ android.os.looper.loop(looper.java:148) @ android.app.activitythread.main(activitythread.java:5417) @ java.lang.reflect.method.invoke(native method) @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:726) @ com.android.internal.os.zygoteinit.main(zygoteinit.java:616) caused by: java.lang.nullpointerexception: attempt invoke virtual method 'void android.widget.button.setonclicklistener(android.view.view$onclicklistener)' on null object reference @ com.example.matt.palt.mainactivity.configurebutton(mainactivity.java:124) @ com.example.matt.palt.mainactivity.oncreate(mainactivity.java:103) @ android.app.activity.performcreate(activity.java:6237) @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1107) @ android.app.activitythread.performlaunchactivity(activitythread.java:2369) @ android.app.activitythread.handlelaunchactivity(activitythread.java:2476) @ android.app.activitythread.-wrap11(activitythread.java) @ android.app.activitythread$h.handlemessage(activitythread.java:1344) @ android.os.handler.dispatchmessage(handler.java:102) @ android.os.looper.loop(looper.java:148) @ android.app.activitythread.main(activitythread.java:5417) @ java.lang.reflect.method.invoke(native method) @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:726) @ com.android.internal.os.zygoteinit.main(zygoteinit.java:616) 01-15 17:10:20.435 2340-2340/com.example.matt.palt i/process: sending signal. pid: 2340 sig: 9
the first time ran application running fine.
it seems problem requestbutton. have tried looking further solution can't find one.
r.id.buttonmap not found, resulting in null findviewbyid(r.id.buttonmap).
the id buttonmap should in activity_main xml file. not.
Comments
Post a Comment