google maps - android.view.InflateException: Binary XML file line #8: Error inflating class fragment -


i trying make google map activity find travel distance.but unfortunately layout.xml file throw , below error , stop app. used min sdk version - 16. tried lot of thing still error remain.i run app in real device.expect expert help.

2218/? e/androidruntime: fatal exception: main                                                java.lang.runtimeexception: unable start activity componentinfo{scpp.globaleye.com.scppclient/scpp.globaleye.com.scppclient.ui.mapsactivity}: android.view.inflateexception: binary xml file line #8: error inflating class fragment                                                    @ android.app.activitythread.performlaunchactivity(activitythread.java:2184)                                                    @ android.app.activitythread.handlelaunchactivity(activitythread.java:2211)                                                    @ android.app.activitythread.access$600(activitythread.java:149)                                                    @ android.app.activitythread$h.handlemessage(activitythread.java:1300)                                                    @ android.os.handler.dispatchmessage(handler.java:99)                                                    @ android.os.looper.loop(looper.java:153)                                                    @ android.app.activitythread.main(activitythread.java:4987)                                                    @ java.lang.reflect.method.invokenative(native method)                                                    @ java.lang.reflect.method.invoke(method.java:511)                                                    @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:821)                                                    @ com.android.internal.os.zygoteinit.main(zygoteinit.java:584)                                                    @ dalvik.system.nativestart.main(native method)                                                 caused by: android.view.inflateexception: binary xml file line #8: error inflating class fragment                                                    @ android.view.layoutinflater.createviewfromtag(layoutinflater.java:704)                                                    @ android.view.layoutinflater.rinflate(layoutinflater.java:746)                                                    @ android.view.layoutinflater.inflate(layoutinflater.java:489)                                                    @ android.view.layoutinflater.inflate(layoutinflater.java:396)                                                    @ android.view.layoutinflater.inflate(layoutinflater.java:352)                                                    @ com.android.internal.policy.impl.phonewindow.setcontentview(phonewindow.java:258)                                                    @ android.app.activity.setcontentview(activity.java:1867)                                                    @ scpp.globaleye.com.scppclient.ui.mapsactivity.oncreate(mapsactivity.java:44)                                                    @ android.app.activity.performcreate(activity.java:5020)                                                    @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1080)                                                    @ android.app.activitythread.performlaunchactivity(activitythread.java:2148)                                                    @ android.app.activitythread.handlelaunchactivity(activitythread.java:2211)                                                     @ android.app.activitythread.access$600(activitythread.java:149)                                                     @ android.app.activitythread$h.handlemessage(activitythread.java:1300)                                                     @ android.os.handler.dispatchmessage(handler.java:99)                                                     @ android.os.looper.loop(looper.java:153)                                                     @ android.app.activitythread.main(activitythread.java:4987)                                                     @ java.lang.reflect.method.invokenative(native method)                                                     @ java.lang.reflect.method.invoke(method.java:511)                                                     @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:821)                                                     @ com.android.internal.os.zygoteinit.main(zygoteinit.java:584)                                                     @ dalvik.system.nativestart.main(native method)                                                  caused by: java.lang.nullpointerexception                                                    @ com.google.maps.api.android.lib6.gmm6.m.ad.a(unknown source)                                                    @ com.google.maps.api.android.lib6.gmm6.c.h.a(unknown source)                                                    @ com.google.maps.api.android.lib6.gmm6.c.y.a(unknown source)                                                    @ com.google.maps.api.android.lib6.e.bd.a(unknown source)                                                    @ com.google.maps.api.android.lib6.e.ev.a(unknown source)                                                    @ com.google.maps.api.android.lib6.e.z.a(unknown source)                                                    @ com.google.maps.api.android.lib6.e.y.a(unknown source)                                                    @ com.google.android.gms.maps.internal.u.ontransact(sourcefile:107)                                                    @ android.os.binder.transact(binder.java:326)                                                    @ com.google.android.gms.maps.internal.imapfragmentdelegate$zza$zza.oncreateview(unknown source)                                                    @ com.google.android.gms.maps.mapfragment$zza.oncreateview(unknown source)                                                    @ com.google.android.gms.dynamic.zza$4.zzb(unknown source)                                                    @ com.google.android.gms.dynamic.zza.zza(unknown source)                                                    @ com.google.android.gms.dynamic.zza.oncreateview(unknown source)                                                    @ com.google.android.gms.maps.mapfragment.oncreateview(unknown source)                                                    @ android.app.fragmentmanagerimpl.movetostate(fragmentmanager.java:807)                                                    @ android.app.fragmentmanagerimpl.movetostate(fragmentmanager.java:1013)                                                    @ android.app.fragmentmanagerimpl.addfragment(fragmentmanager.java:1112)                                                    @ android.app.activity.oncreateview(activity.java:4676)                                                    @ android.support.v4.app.basefragmentactivityhoneycomb.oncreateview(basefragmentactivityhoneycomb.java:34)                                                    @ android.support.v4.app.fragmentactivity.oncreateview(fragmentactivity.java:79)                                                    @ android.view.layoutinflater.createviewfromtag(layoutinflater.java:680)                                                    @ android.view.layoutinflater.rinflate(layoutinflater.java:746)                                                     @ android.view.layoutinflater.inflate(layoutinflater.java:489)                                                     @ android.view.layoutinflater.inflate(layoutinflater.java:396)                                                     @ android.view.layoutinflater.inflate(layoutinflater.java:352)                                                     @ com.android.internal.policy.impl.phonewindow.setcontentview(phonewindow.java:258)                                                     @ android.app.activity.setcontentview(activity.java:1867)                                                     @ scpp.globaleye.com.scppclient.ui.mapsactivity.oncreate(mapsactivity.java:44)                                                     @ android.app.activity.performcreate(activity.java:5020)                                                     @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1080)                                                     @ android.app.activitythread.performlaunchactivity(activitythread.java:2148)                                                     @ android.app.activitythread.handlelaunchactivity(activitythread.java:2211)                                                     @ android.app.activitythread.access$600(activitythread.java:149)                                                     @ android.app.activitythread$h.handlemessage(activitythread.java:1300)                                                     @ android.os.handler.dispatchmessage(handler.java:99)                                                     @ android.os.looper.loop(looper.java:153)                                                     @ android.app.activitythread.main(activitythread.java:4987)                                                     @ java.lang.reflect.method.invokenative(native method)                                                     @ java.lang.reflect.method.invoke(method.java:511)                                                     @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:821)                                                     @ com.android.internal.os.zygoteinit.main(zygoteinit.java:584)                                                     @ dalvik.system.nativestart.main(native method)  

my mapsactivity class. comment other line , find setcontentview(r.layout.activity_maps); pass error , stop app.

 public class mapsactivity extends fragmentactivity implements locationlistener {      googlemap googlemap;     double start_lat,stop_lat,start_lng,stop_lng,lat,lng;     criteria criteria;     locationmanager locationmanager;     string provider;     location location;     button start_btn,stop_btn;     textview tv;     float[] distance = new float[1];      @override     protected void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);          setcontentview(r.layout.activity_maps);         //mapfragment fm = (mapfragment) getfragmentmanager().findfragmentbyid(r.id.map);          //system.out.println("on createteeeeeeeeeeeeeee");          //supportmapfragment fm = (supportmapfragment) getsupportfragmentmanager().findfragmentbyid(r.id.map);          /*googlemap = fm.getmap();         getlocation();          //////button         start_btn = (button) findviewbyid(r.id.button1);         stop_btn = (button) findviewbyid(r.id.button2);         stop_btn.setenabled(false);          start_btn.setonclicklistener(new view.onclicklistener() {             public void onclick(view v) {                 // perform action on click                 //system.out.println("startttttttttttttttttttttttttbbbbbbbbbbbbbbbbbbbbbbbbbbbbb");                 if(tv != null){                     tv.settext("");                 }                  stop_btn.setenabled(true);                 start_btn.setenabled(false);                 getstarrtloc(location);              }         });          stop_btn.setonclicklistener(new view.onclicklistener() {             public void onclick(view v) {                 // perform action on click                 //system.out.println("stoppppppppppppppppppppppppppbbbbbbbbbbbbbbbbbbbbbbbbbbbbb");                 start_btn.setenabled(true);                 stop_btn.setenabled(false);                 getstoptloc(location);             }         });*/      }     @override     public void onlocationchanged(location loc) {          location = loc;         //system.out.println("changggggggggggggggggggggggggg"+loc.getlatitude()+loc.getlongitude());     }      @override     public void onproviderdisabled(string provider) {         // todo auto-generated method stub     }      @override     public void onproviderenabled(string provider) {         // todo auto-generated method stub     }      @override     public void onstatuschanged(string provider, int status, bundle extras) {         // todo auto-generated method stub     }      @override     public boolean oncreateoptionsmenu(menu menu) {         return true;     }      public location getlocation(){         if (activitycompat.checkselfpermission(this, manifest.permission.access_fine_location) != packagemanager.permission_granted && activitycompat.checkselfpermission(this, manifest.permission.access_coarse_location) != packagemanager.permission_granted) {             //return;             toast.maketext(this,"no permission", toast.length_long).show();         }         // enabling mylocation layer of google map         googlemap.setmylocationenabled(true);          // getting locationmanager object system service location_service         locationmanager = (locationmanager) getsystemservice(location_service);          // creating criteria object retrieve provider         criteria = new criteria();          // getting name of best provider         provider = locationmanager.getbestprovider(criteria, true);          // getting current location         if (activitycompat.checkselfpermission(this, manifest.permission.access_fine_location) != packagemanager.permission_granted && activitycompat.checkselfpermission(this, manifest.permission.access_coarse_location) != packagemanager.permission_granted) {             //return;             toast.maketext(this,"no permission", toast.length_long).show();         }         location = locationmanager.getlastknownlocation(provider);          if(location!=null){             toast.maketext(this,"gps fixed", toast.length_long).show();             //onlocationchanged(location);             //return location;             lat=location.getlatitude();             lng=location.getlongitude();         }         locationmanager.requestlocationupdates(provider,0,0, this);         //system.out.println("llllllllllllllllllllllllllllllllllllll"+lat+lng);         return location;     }      public void getstarrtloc(location start_loc){         start_lat = start_loc.getlatitude();         start_lng = start_loc.getlongitude();         //system.out.println("startttttttttttttttttttttttttttttttttt"+start_lat+"ffffffffff"+start_lng);      }      public void getstoptloc(location stop_loc){          stop_lat = stop_loc.getlatitude();         stop_lng = stop_loc.getlongitude();         //system.out.println("stppppppppppppppppppppppppppppppppppppp"+stop_lat+"ffffffffff"+stop_lng);         calcdistance();         tv = (textview) findviewbyid(r.id.textview);         tv.settext("distance :"+distance[0]);         //system.out.println("dddddddddd"+distance[0]);     }      public void calcdistance(){         location.distancebetween(start_lat,start_lng,stop_lat,stop_lng,distance);     }      @override     public void onbackpressed() {           super.onbackpressed();             intent intent = new intent(mapsactivity.this, userselect.class);             mapsactivity.this.startactivity(intent);             mapsactivity.this.finish();         } } 

my activity_map.xml file.

  <?xml version="1.0" encoding="utf-8"?> <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"     tools:context=".ui.mapsactivity">      <fragment         xmlns:map="http://schemas.android.com/apk/res-auto"         android:name="com.google.android.gms.maps.mapfragment"         android:id="@+id/map"         android:layout_width="match_parent"         android:layout_height="match_parent"         android:layout_above="@+id/layout1"         tools:layout="@layout/activity_maps" />      <relativelayout         android:orientation="vertical"         android:layout_width="match_parent"         android:layout_height="70dp"         android:id="@+id/layout1"         android:layout_alignparentleft="true"         android:layout_alignparentstart="true"         android:layout_alignparentbottom="true">          <button         android:layout_width="145dp"         android:layout_height="70dp"         android:text="start ride"         android:id="@+id/button1"         android:layout_alignparentleft="true"/>          <button         android:layout_width="145dp"         android:layout_height="70dp"         android:text="stop ride"         android:id="@+id/button2"         android:layout_alignparentright="true"/>          <textview             android:layout_width="wrap_content"             android:layout_height="70dp"             android:text=""             android:id="@+id/textview"             android:layout_toleftof="@+id/button2"             android:layout_torightof="@+id/button1"             android:layout_tostartof="@id/button2"             android:layout_toendof="@+id/button1" />      </relativelayout>   </relativelayout> 

my androidmainfest.xml

    <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"     package="scpp.globaleye.com.scppclient">       <uses-sdk         android:minsdkversion="16"         />      <uses-permission android:name="com.google.android.providers.gsf.permission.read_gservices" />     <uses-permission android:name="android.permission.access_network_state" />     <uses-permission android:name="android.permission.internet" />     <uses-permission android:name="android.permission.camera" />      <!-- boot complete broadcast receiver -->     <uses-permission android:name="android.permission.receive_boot_completed" />      <!-- external storage caching -->     <uses-permission android:name="android.permission.write_external_storage" />      <!--          access_coarse/fine_location permissions not required use          google maps android api v2, must specify either coarse or fine          location permissions 'mylocation' functionality.      -->     <uses-permission android:name="android.permission.access_fine_location" />     <uses-permission android:name="android.permission.access_coarse_location" />        <application         android:allowbackup="true"         android:icon="@mipmap/ic_launcher"         android:label="@string/app_name"         android:supportsrtl="true"         android:theme="@style/apptheme"         >          <!--             api key google maps-based apis defined string resource.             (see file "res/values/google_maps_api.xml").             note api key linked encryption key used sign apk.             need different api key each encryption key, including release key used             sign apk publishing.             can define keys debug , release targets in src/debug/ , src/release/.        -->         <meta-data             android:name="com.google.android.geo.api_key"             android:value="aizasybln7wet4t0n6gu6jr3awe6joqpqickmbe" />          <service             android:name=".services.remotesenzservice"             android:enabled="true"             android:exported="true"></service>          <activity android:name=".ui.login">             <intent-filter>                 <action android:name="android.intent.action.main" />                 <category android:name="android.intent.category.launcher" />             </intent-filter>         </activity>           <activity android:name=".ui.home" />         <activity android:name=".ui.services_view" />         <activity android:name=".ui.update_profile" />         <activity android:name=".ui.userselect" />         <activity android:name=".ui.wallet" />         <activity android:name=".ui.registration" />         <activity             android:name=".ui.mapsactivity"             android:label="@string/title_activity_maps">         </activity>       </application>  </manifest> 

i think because using fragmentactivity, should use supportmapfragment , not mapfragment (because support api activity works fragment class of support library , not 1 of base framework). try changing line

android:name="com.google.android.gms.maps.mapfragment" 

to this

android:name="com.google.android.gms.maps.supportmapfragment" 

as side note, it's important note should use appcompatactivity instead of fragmentactivity.


Comments

Popular posts from this blog

amazon web services - S3 Pre-signed POST validate file type? -

c# - Check Keyboard Input Winforms -