android - Getting NullPointerException in NFC-handling code -



android - Getting NullPointerException in NFC-handling code -

i got code handling nfc tags stackoverflow i'm getting nullpointerexception while running it:

public class mainactivity extends activity { nfcadapter adapter; pendingintent pendingintent; intentfilter writetagfilters[]; boolean writemode; tag mytag; context ctx; @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); ctx = this; button btnwrite = (button) findviewbyid(r.id.button); final textview plateno = (textview)findviewbyid(r.id.plate_no); final textview model = (textview)findviewbyid(r.id.model); final textview chasis = (textview)findviewbyid(r.id.chasis_no); final textview engine = (textview)findviewbyid(r.id.engine_no); final textview duedate = (textview)findviewbyid(r.id.due_date); final textview rotexno = (textview)findviewbyid(r.id.rotex_no); btnwrite.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { seek { if (mytag == null) { toast.maketext(ctx, ctx.getstring(r.string.error_detected), toast.length_long ).show(); } else { write(plateno.gettext().tostring(),mytag); write(model.gettext().tostring(),mytag); write(chasis.gettext().tostring(),mytag); write(engine.gettext().tostring(),mytag); write(duedate.gettext().tostring(),mytag); write(rotexno.gettext().tostring(),mytag); toast.maketext(ctx, ctx.getstring(r.string.ok_writing), toast.length_long ).show(); } } grab (ioexception e) { toast.maketext(ctx, ctx.getstring(r.string.error_writing), toast.length_long ).show(); e.printstacktrace(); } grab (formatexception e) { toast.maketext(ctx, ctx.getstring(r.string.error_writing) , toast.length_long ).show(); e.printstacktrace(); } } }); adapter = nfcadapter.getdefaultadapter(this); pendingintent = pendingintent.getactivity(this, 0, new intent(this, getclass()).addflags(intent.flag_activity_single_top), 0); intentfilter tagdetected = new intentfilter(nfcadapter.action_tag_discovered); tagdetected.addcategory(intent.category_default); writetagfilters = new intentfilter[] { tagdetected }; } private void write(string text, tag tag) throws ioexception, formatexception { ndefrecord[] records = { createrecord(text) }; ndefmessage message = new ndefmessage(records); // instance of ndef tag. ndef ndef = ndef.get(tag); // enable i/o ndef.connect(); // write message ndef.writendefmessage(message); // close connection ndef.close(); } private ndefrecord createrecord(string text) throws unsupportedencodingexception { string lang = "en"; byte[] textbytes = text.getbytes(); byte[] langbytes = lang.getbytes("us-ascii"); int langlength = langbytes.length; int textlength = textbytes.length; byte[] payload = new byte[1 + langlength + textlength]; // set status byte (see ndef spec actual bits) payload[0] = (byte) langlength; // re-create langbytes , textbytes payload system.arraycopy(langbytes, 0, payload, 1, langlength); system.arraycopy(textbytes, 0, payload, 1 + langlength, textlength); ndefrecord recordnfc = new ndefrecord(ndefrecord.tnf_well_known, ndefrecord.rtd_text, new byte[0], payload); homecoming recordnfc; } @override protected void onnewintent(intent intent){ if (nfcadapter.action_tag_discovered.equals(intent.getaction())) { mytag = intent.getparcelableextra(nfcadapter.extra_tag); toast.maketext(this, this.getstring(r.string.ok_detection) + mytag.tostring(), toast.length_long ).show(); } } @override public void onpause(){ super.onpause(); writemodeoff(); } @override public void onresume(){ super.onresume(); writemodeon(); } private void writemodeon(){ writemode = true; adapter.enableforegrounddispatch(this, pendingintent, writetagfilters, null); } private void writemodeoff(){ writemode = false; adapter.disableforegrounddispatch(this); } }

this error message logcat:

04-11 14:21:15.020: e/androidruntime(1512): fatal exception: main 04-11 14:21:15.020: e/androidruntime(1512): process: com.example.nfcwrite, pid: 1512 04-11 14:21:15.020: e/androidruntime(1512): java.lang.runtimeexception: unable resume activity {com.example.nfcwrite/com.example.nfcwrite.mainactivity}: java.lang.nullpointerexception 04-11 14:21:15.020: e/androidruntime(1512): @ android.app.activitythread.performresumeactivity(activitythread.java:2788) 04-11 14:21:15.020: e/androidruntime(1512): @ android.app.activitythread.handleresumeactivity(activitythread.java:2817) 04-11 14:21:15.020: e/androidruntime(1512): @ android.app.activitythread.handlelaunchactivity(activitythread.java:2250) 04-11 14:21:15.020: e/androidruntime(1512): @ android.app.activitythread.access$800(activitythread.java:135) 04-11 14:21:15.020: e/androidruntime(1512): @ android.app.activitythread$h.handlemessage(activitythread.java:1196) 04-11 14:21:15.020: e/androidruntime(1512): @ android.os.handler.dispatchmessage(handler.java:102) 04-11 14:21:15.020: e/androidruntime(1512): @ android.os.looper.loop(looper.java:136) 04-11 14:21:15.020: e/androidruntime(1512): @ android.app.activitythread.main(activitythread.java:5017) 04-11 14:21:15.020: e/androidruntime(1512): @ java.lang.reflect.method.invokenative(native method) 04-11 14:21:15.020: e/androidruntime(1512): @ java.lang.reflect.method.invoke(method.java:515) 04-11 14:21:15.020: e/androidruntime(1512): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:779) 04-11 14:21:15.020: e/androidruntime(1512): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:595) 04-11 14:21:15.020: e/androidruntime(1512): @ dalvik.system.nativestart.main(native method) 04-11 14:21:15.020: e/androidruntime(1512): caused by: java.lang.nullpointerexception 04-11 14:21:15.020: e/androidruntime(1512): @ com.example.nfcwrite.mainactivity.writemodeon(mainactivity.java:149) 04-11 14:21:15.020: e/androidruntime(1512): @ com.example.nfcwrite.mainactivity.onresume(mainactivity.java:144) 04-11 14:21:15.020: e/androidruntime(1512): @ android.app.instrumentation.callactivityonresume(instrumentation.java:1192) 04-11 14:21:15.020: e/androidruntime(1512): @ android.app.activity.performresume(activity.java:5310) 04-11 14:21:15.020: e/androidruntime(1512): @ android.app.activitythread.performresumeactivity(activitythread.java:2778) 04-11 14:21:15.020: e/androidruntime(1512): ... 12 more

according stacktrace in line

adapter.enableforegrounddispatch(this, pendingintent, writetagfilters, null);

you adapter null.

nfcadapter.getdefaultadapter(this); may homecoming null if no such adapter available. sure function supported on testing device?

android nfc

Comments

Popular posts from this blog

java - How to set log4j.defaultInitOverride property to false in jboss server 6 -

c - GStreamer 1.0 1.4.5 RTSP Example Server sends 503 Service unavailable -

Using ajax with sonata admin list view pagination -