android - How to resolve 'Null Pointer Exception' -


i'm new android. i'm creating application in have use map in 2 activities. application running when tap on 'tagyourself' activity (one of map activities) application crashes. log cat shows null pointer exception on line 46 this.setcontentview(r.layout.activity_tag_yourself);. log cat showing. android.view.inflateexception on binary xml file line # 17 fragment map.

i couldn't understand why giving such exceptions. please me. here log cat acitivity.

04-06 23:20:02.851: i/inputmethodmanager(31122): handlemessage: msg_set_active false, true 04-06 23:20:02.867: i/inputmethodmanager(31122): handlemessage: msg_unbind 985 04-06 23:20:02.911: d/openglrenderer(31122): flushing caches (mode 0) 04-06 23:20:03.276: d/openglrenderer(31122): flushing caches (mode 0) 04-06 23:20:08.341: v/phonewindow(31122): decorview setvisiblity: visibility = 0 04-06 23:20:08.386: v/inputmethodmanager(31122): onwindowfocus: null softinputmode=32 first=true flags=#1810100 04-06 23:20:08.386: v/inputmethodmanager(31122): start input: com.android.internal.policy.impl.phonewindow$decorview{41394140 v.e..... r.....id 0,0-480,854} ic=null tba=android.view.inputmethod.editorinfo@412aebc0 controlflags=#104 04-06 23:20:08.390: v/inputmethodmanager(31122): starting input: bind result=inputbindresult{com.android.internal.view.iinputmethodsession$stub$proxy@412635d8 com.android.inputmethod.latin/.latinime #989} 04-06 23:20:08.420: i/inputmethodmanager(31122): handlemessage: msg_set_active true, false 04-06 23:20:08.427: i/surfacetextureclient(31122): [stc::queuebuffer] (this:0x52cb22e8) fps:0.15, dur:6849.47, max:6849.47, min:6849.47 04-06 23:20:08.427: i/surfacetextureclient(31122): [stc::queuebuffer] this:0x52cb22e8, api:1, last queue time elapsed:6849.47 04-06 23:20:09.363: v/provider/settings(31122): invalidate [system]: current 182 != cached 0 04-06 23:20:09.367: d/activitythread(31122): installprovider: context=android.app.contextimpl@41393588holder=android.app.iactivitymanager$contentproviderholder@41271e08noisy=truenoreleaseneeded=truestable=true 04-06 23:20:09.368: v/provider/settings(31122): db cache, name = sound_effects_enabled , value = 0 04-06 23:20:09.393: d/mylog(31122): wifi state true 04-06 23:20:09.514: i/surfacetextureclient(31122): [stc::queuebuffer] (this:0x52cb22e8) fps:1.84, dur:1087.15, max:843.11, min:244.04 04-06 23:20:09.562: d/androidruntime(31122): shutting down vm 04-06 23:20:09.562: w/dalvikvm(31122): threadid=1: thread exiting uncaught exception (group=0x40cab9a8) 04-06 23:20:09.584: e/androidruntime(31122): fatal exception: main 04-06 23:20:09.584: e/androidruntime(31122): java.lang.runtimeexception: unable start activity componentinfo{com.example.jamaat_times/com.example.jamaattiming.tagyourself}: android.view.inflateexception: binary xml file line #17: error inflating class fragment 04-06 23:20:09.584: e/androidruntime(31122):    @ android.app.activitythread.performlaunchactivity(activitythread.java:2343) 04-06 23:20:09.584: e/androidruntime(31122):    @ android.app.activitythread.handlelaunchactivity(activitythread.java:2395) 04-06 23:20:09.584: e/androidruntime(31122):    @ android.app.activitythread.access$600(activitythread.java:162) 04-06 23:20:09.584: e/androidruntime(31122):    @ android.app.activitythread$h.handlemessage(activitythread.java:1364) 04-06 23:20:09.584: e/androidruntime(31122):    @ android.os.handler.dispatchmessage(handler.java:107) 04-06 23:20:09.584: e/androidruntime(31122):    @ android.os.looper.loop(looper.java:194) 04-06 23:20:09.584: e/androidruntime(31122):    @ android.app.activitythread.main(activitythread.java:5371) 04-06 23:20:09.584: e/androidruntime(31122):    @ java.lang.reflect.method.invokenative(native method) 04-06 23:20:09.584: e/androidruntime(31122):    @ java.lang.reflect.method.invoke(method.java:525) 04-06 23:20:09.584: e/androidruntime(31122):    @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:833) 04-06 23:20:09.584: e/androidruntime(31122):    @ com.android.internal.os.zygoteinit.main(zygoteinit.java:600) 04-06 23:20:09.584: e/androidruntime(31122):    @ dalvik.system.nativestart.main(native method) 04-06 23:20:09.584: e/androidruntime(31122): caused by: android.view.inflateexception: binary xml file line #17: error inflating class fragment 04-06 23:20:09.584: e/androidruntime(31122):    @ android.view.layoutinflater.createviewfromtag(layoutinflater.java:704) 04-06 23:20:09.584: e/androidruntime(31122):    @ android.view.layoutinflater.rinflate(layoutinflater.java:746) 04-06 23:20:09.584: e/androidruntime(31122):    @ android.view.layoutinflater.inflate(layoutinflater.java:489) 04-06 23:20:09.584: e/androidruntime(31122):    @ android.view.layoutinflater.inflate(layoutinflater.java:396) 04-06 23:20:09.584: e/androidruntime(31122):    @ android.view.layoutinflater.inflate(layoutinflater.java:352) 04-06 23:20:09.584: e/androidruntime(31122):    @ com.android.internal.policy.impl.phonewindow.setcontentview(phonewindow.java:281) 04-06 23:20:09.584: e/androidruntime(31122):    @ android.app.activity.setcontentview(activity.java:1881) 04-06 23:20:09.584: e/androidruntime(31122):    @ com.example.jamaattiming.tagyourself.oncreate(tagyourself.java:46) 04-06 23:20:09.584: e/androidruntime(31122):    @ android.app.activity.performcreate(activity.java:5122) 04-06 23:20:09.584: e/androidruntime(31122):    @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1081) 04-06 23:20:09.584: e/androidruntime(31122):    @ android.app.activitythread.performlaunchactivity(activitythread.java:2307) 04-06 23:20:09.584: e/androidruntime(31122):    ... 11 more 04-06 23:20:09.584: e/androidruntime(31122): caused by: java.lang.nullpointerexception: name == null 04-06 23:20:09.584: e/androidruntime(31122):    @ java.lang.vmclassloader.findloadedclass(native method) 04-06 23:20:09.584: e/androidruntime(31122):    @ java.lang.classloader.findloadedclass(classloader.java:354) 04-06 23:20:09.584: e/androidruntime(31122):    @ java.lang.classloader.loadclass(classloader.java:491) 04-06 23:20:09.584: e/androidruntime(31122):    @ java.lang.classloader.loadclass(classloader.java:461) 04-06 23:20:09.584: e/androidruntime(31122):    @ android.support.v4.app.fragment.issupportfragmentclass(fragment.java:436) 04-06 23:20:09.584: e/androidruntime(31122):    @ android.support.v4.app.fragmentactivity.oncreateview(fragmentactivity.java:255) 04-06 23:20:09.584: e/androidruntime(31122):    @ android.view.layoutinflater.createviewfromtag(layoutinflater.java:676) 04-06 23:20:09.584: e/androidruntime(31122):    ... 21 more 

here xml code:

<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:orientation="vertical"      android:background="#808080"     tools:context=".tagyourself"      android:id="@+id/activity_tag_yourself">  <textview     android:id="@+id/tv_distance_time"     android:layout_width="wrap_content"     android:layout_height="wrap_content"     android:layout_alignparenttop="true"     android:text="@string/hello_world" />  <fragment     android:id="@+id/map"     android:layout_width="wrap_content"     android:layout_height="wrap_content"     android:layout_below="@id/tv_distance_time" />  </relativelayout> 

here java code tagyourself class:

    public class tagyourself extends fragmentactivity {     googlemap map;     arraylist<latlng> markerpoints;     textview tvdistanceduration;      @override     protected void oncreate(bundle savedinstancestate)     {         super.oncreate(savedinstancestate);         this.setcontentview(r.layout.activity_tag_yourself);          this.tvdistanceduration = (textview) this.findviewbyid(r.id.tv_distance_time);         // initializing         this.markerpoints = new arraylist<latlng>();           supportmapfragment fm = (supportmapfragment) this.getsupportfragmentmanager().findfragmentbyid(r.id.map);          // getting map supportmapfragment         this.map = fm.getmap();          // enable mylocation button in map         this.map.setmylocationenabled(true);          // setting onclick event listener map         this.map.setonmapclicklistener(new onmapclicklistener()         {             @override             public void onmapclick(latlng point)             {                 // 2 locations                 if (tagyourself.this.markerpoints.size() > 1)                 {                     tagyourself.this.markerpoints.clear();                     tagyourself.this.map.clear();                 }                  // adding new item arraylist                 tagyourself.this.markerpoints.add(point);                  // creating markeroptions                 markeroptions options = new markeroptions();                  // setting position of marker                 options.position(point);                  /**                  * start location, color of marker green ,                  * end location, color of marker red.                  */                 if (tagyourself.this.markerpoints.size() == 1)                 {                     options.icon(bitmapdescriptorfactory.defaultmarker(bitmapdescriptorfactory.hue_green));                 } else if (tagyourself.this.markerpoints.size() == 2)                 {                     options.icon(bitmapdescriptorfactory.defaultmarker(bitmapdescriptorfactory.hue_red));                 }                  // add new marker google map android api v2                 tagyourself.this.map.addmarker(options);                  // checks, whether start , end locations captured                 if (tagyourself.this.markerpoints.size() >= 2)                 {                     latlng origin = tagyourself.this.markerpoints.get(0);                     latlng dest = tagyourself.this.markerpoints.get(1);                      // getting url google directions api                     string url = tagyourself.this.getdirectionsurl(origin, dest);                      downloadtask downloadtask = new downloadtask();                      // start downloading json data google directions api                     downloadtask.execute(url);                 }             }         });     }      private string getdirectionsurl(latlng origin, latlng dest)     {         // origin of route         string str_origin = "origin=" + origin.latitude + "," + origin.longitude;          // destination of route         string str_dest = "destination=" + dest.latitude + "," + dest.longitude;          // sensor enabled         string sensor = "sensor=false";          // building parameters web service         string parameters = str_origin + "&" + str_dest + "&" + sensor;          // output format         string output = "json";          // building url web service         string url = "https://maps.googleapis.com/maps/api/directions/" + output + "?" + parameters;          return url;     }      /** method download json data url */     private string downloadurl(string strurl) throws ioexception     {         string data = "";         inputstream istream = null;         httpurlconnection urlconnection = null;         try         {             url url = new url(strurl);              // creating http connection communicate url             urlconnection = (httpurlconnection) url.openconnection();              // connecting url             urlconnection.connect();              // reading data url             istream = urlconnection.getinputstream();              bufferedreader br = new bufferedreader(new inputstreamreader(istream));              stringbuffer sb = new stringbuffer();              string line = "";             while ((line = br.readline()) != null)             {                 sb.append(line);             }              data = sb.tostring();              br.close();          } catch (exception e)         {             log.d("exception while downloading url", e.tostring());         }         {             istream.close();             urlconnection.disconnect();         }         return data;     } 

i've uses following permissions:

 <uses-sdk   android:minsdkversion="11"   android:targetsdkversion="16" />  <uses-permission android:name="com.example.jamaat_times.permission.maps_receive" />  <uses-permission android:name="android.permission.change_wifi_state" /> <uses-permission android:name="android.permission.access_wifi_state" /> <uses-permission android:name="android.permission.access_network_state" /> <uses-permission android:name="android.permission.internet" /> <uses-permission android:name="com.google.android.providers.gsf.permission.read_gservices" /> <uses-permission android:name="android.permission.access_coarse_location" /> <uses-permission android:name="android.permission.access_fine_location" /> <uses-permission android:name="android.permission.write_external_storage"/> 

p.s: there no problem in key.

caused by: java.lang.nullpointerexception: name == null

you missing android:name attribute fragment

<fragment android:id="@+id/map" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/tv_distance_time"  android:name="com.google.android.gms.maps.supportmapfragment"/> 

Comments

Popular posts from this blog

PHPMotion implementation - URL based videos (Hosted on separate location) -

javascript - Using Windows Media Player as video fallback for video tag -

c# - Unity IoC Lifetime per HttpRequest for UserStore -