Sunday, 15 February 2015

android - Bluetooth Low Energy - java.lang.NullPointerException -



android - Bluetooth Low Energy - java.lang.NullPointerException -

so i've been struggling past few hours , searching before don't think can find way sovle problem. i'm trying utilize context within of fragment extension , it's giving me errors i've pasted total code here in gist

enter link description here

from found on sounds happens when there null context, don't understand how prepare it.

logcat:

> 06-18 10:20:08.972 5718-5718/com.aparosecurity.kblock w/dalvikvm﹕ > threadid=1: thread exiting uncaught exception (group=0x41625898) > 06-18 10:20:08.992 5718-5718/com.aparosecurity.kblock > e/androidruntime﹕ fatal exception: main > java.lang.nullpointerexception > @ com.aparosecurity.kblock.imagefragment.oncreate(imagefragment.java:77) > @ android.support.v4.app.fragment.performcreate(fragment.java:1477) > @ android.support.v4.app.fragmentmanagerimpl.movetostate(fragmentmanager.java:904) > @ android.support.v4.app.fragmentmanagerimpl.performpendingdeferredstart(fragmentmanager.java:834) > @ android.support.v4.app.fragment.setuservisiblehint(fragment.java:841) > @ android.support.v4.app.fragmentpageradapter.setprimaryitem(fragmentpageradapter.java:130) > @ android.support.v4.view.viewpager.populate(viewpager.java:1066) > @ android.support.v4.view.viewpager.populate(viewpager.java:914) > @ android.support.v4.view.viewpager.onmeasure(viewpager.java:1436) > @ android.view.view.measure(view.java:15848) > @ android.widget.linearlayout.measurevertical(linearlayout.java:847) > @ android.widget.linearlayout.onmeasure(linearlayout.java:588) > @ android.view.view.measure(view.java:15848) > @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:5012) > @ android.widget.framelayout.onmeasure(framelayout.java:310) > @ android.view.view.measure(view.java:15848) > @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:5012) > @ android.widget.linearlayout.measurechildbeforelayout(linearlayout.java:1404) > @ android.widget.linearlayout.measurevertical(linearlayout.java:695) > @ android.widget.linearlayout.onmeasure(linearlayout.java:588) > @ android.view.view.measure(view.java:15848) > @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:5012) > @ android.widget.framelayout.onmeasure(framelayout.java:310) > @ com.android.internal.policy.impl.phonewindow$decorview.onmeasure(phonewindow.java:2189) > @ android.view.view.measure(view.java:15848) > @ android.view.viewrootimpl.performmeasure(viewrootimpl.java:1905) > @ android.view.viewrootimpl.measurehierarchy(viewrootimpl.java:1104) > @ android.view.viewrootimpl.performtraversals(viewrootimpl.java:1284) > @ android.view.viewrootimpl.dotraversal(viewrootimpl.java:1004) > @ android.view.viewrootimpl$traversalrunnable.run(viewrootimpl.java:5481) > @ android.view.choreographer$callbackrecord.run(choreographer.java:749) > @ android.view.choreographer.docallbacks(choreographer.java:562) > @ android.view.choreographer.doframe(choreographer.java:532) > @ android.view.choreographer$framedisplayeventreceiver.run(choreographer.java:735) > @ android.os.handler.handlecallback(handler.java:730) > @ android.os.handler.dispatchmessage(handler.java:92) > @ android.os.looper.loop(looper.java:137) > @ android.app.activitythread.main(activitythread.java:5136) > @ java.lang.reflect.method.invokenative(native method) > @ java.lang.reflect.method.invoke(method.java:525) > @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:737) > @ com.android.internal.os.zygoteinit.main(zygoteinit.java:553) > @ dalvik.system.nativestart.main(native method)

any help appreciated.

the specific lines failing, error occurs when mcontext used.

@override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); fragval = getarguments() != null ? getarguments().getint("val") : 1; mhandler = new handler(); // initializes bluetooth adapter. api level 18 , above, reference // bluetoothadapter through bluetoothmanager. final bluetoothmanager bluetoothmanager = (bluetoothmanager) mcontext.getsystemservice(context.bluetooth_service); mbluetoothadapter = bluetoothmanager.getadapter(); }

you have not initialized mcontext , null. invoking method on null reference causes npe.

in fragment, utilize getactivity() reference hosting activity can used context. (caveat: when attached activity. works in oncreate() comes after onattach().)

so, replace

mcontext.getsystemservice()

with

getactivity().getsystemservice()

java android android-fragments android-studio bluetooth-lowenergy

No comments:

Post a Comment