title: Unable to start activity ComponentInfo: android.view.InflateException: Binary XML file line #1: Error inflating class fragment
body: <p>I am trying to show the map.  I am getting following error.  Could you please help me to find out the issue?   </p>
  
  <pre><code>10-26 13:04:43.597 2120-2120/? E/AndroidRuntime: FATAL EXCEPTION: main
  Process: com.example.jupiter.projectmap, PID: 2120
  java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.jupiter.projectmap/com.example.jupiter.projectmap.MapsActivity}: android.view.InflateException: Binary XML file line #1: Error inflating class fragment
          at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2358)
          at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2420)
          at android.app.ActivityThread.access$900(ActivityThread.java:154)
          at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1321)
          at android.os.Handler.dispatchMessage(Handler.java:102)
          at android.os.Looper.loop(Looper.java:135)
          at android.app.ActivityThread.main(ActivityThread.java:5294)
          at java.lang.reflect.Method.invoke(Native Method)
          at java.lang.reflect.Method.invoke(Method.java:372)
          at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
          at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)
      Caused by: android.view.InflateException: Binary XML file line #1: Error inflating class fragment
          at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:763)
          at android.view.LayoutInflater.inflate(LayoutInflater.java:482)
          at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
          at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
          at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:429)
          at android.app.Activity.setContentView(Activity.java:2145)
          at com.example.jupiter.projectmap.MapsActivity.onCreate(MapsActivity.java:41)
          at android.app.Activity.performCreate(Activity.java:5990)
          at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
          at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2311)
          at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2420) 
          at android.app.ActivityThread.access$900(ActivityThread.java:154) 
          at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1321) 
          at android.os.Handler.dispatchMessage(Handler.java:102) 
          at android.os.Looper.loop(Looper.java:135) 
          at android.app.ActivityThread.main(ActivityThread.java:5294) 
          at java.lang.reflect.Method.invoke(Native Method) 
          at java.lang.reflect.Method.invoke(Method.java:372) 
          at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904) 
          at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699) 
      Caused by: android.content.res.Resources$NotFoundException: File /data/system/theme/icons/com.example.jupiter.projectmap_7f030000_0.png from drawable resource ID #0x7f030000
          at android.content.res.Resources.openRawResource(Resources.java:1248)
          at android.content.res.Resources.openRawResource(Resources.java:1219)
          at maps.V.N.a(Unknown Source)
          at maps.D.e.a(Unknown Source)
          at maps.D.p.a(Unknown Source)
          at maps.ad.ae.a(Unknown Source)
          at maps.ad.t.a(Unknown Source)
          at maps.ad.M.a(Unknown Source)
          at wd.onTransact(:com.google.android.gms.DynamiteModulesB:107)
          at android.os.Binder.transact(Binder.java:380)
          at com.google.android.gms.maps.internal.IMapFragmentDelegate$zza$zza.onCreateView(Unknown Source)
          at com.google.android.gms.maps.SupportMapFragment$zza.onCreateView(Unknown Source)
          at com.google.android.gms.dynamic.zza$4.zzb(Unknown Source)
          at com.google.android.gms.dynamic.zza.zza(Unknown Source)
          at com.google.android.gms.dynamic.zza.onCreateView(Unknown Source)
          at com.google.android.gms.maps.SupportMapFragment.onCreateView(Unknown Source)
          at android.support.v4.app.Fragment.performCreateView(Fragment.java:1974)
          at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1036)
          at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1230)
          at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1332)
          at android.support.v4.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2288)
          at android.support.v4.app.FragmentController.onCreateView(FragmentController.java:120)
          at android.support.v4.app.FragmentActivity.dispatchFragmentsOnCreateView(FragmentActivity.java:356)
          at android.support.v4.app.BaseFragmentActivityHoneycomb.onCreateView(BaseFragmentActivityHoneycomb.java:31)
          at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:79)
          at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:733)
          at android.view.LayoutInflater.inflate(LayoutInflater.java:482) 
          at android.view.LayoutInflater.inflate(LayoutInflater.java:414) 
          at android.view.LayoutInflater.inflate(LayoutInflater.java:365) 
          at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:429) 
          at android.app.Activity.setContentView(Activity.java:2145) 
          at com.example.jupiter.projectmap.MapsActivity.onCreate(MapsActivity.java:41) 
          at android.app.Activity.performCreate(Activity.java:5990) 
          at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) 
          at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2311) 
          at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2420) 
          at android.app.ActivityThread.access$900(ActivityThread.java:154) 
          at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1321) 
          at android.os.Handler.dispatchMessage(Handler.java:102) 
          at android.os.Looper.loop(Looper.java:135) 
          at android.app.ActivityThread.main(ActivityThread.java:5294) 
          at java.lang.reflect.Method.invoke(Native Method) 
          at java.lang.reflect.Method.invoke(Method.java:372) 
          at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904) 
          at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699) 
  Caused by: java.io.FileNotFoundException: /data/system/theme/icons/com.example.jupiter.projectmap_7f030000_0.png
          at android.content.res.AssetManager.openNonAssetNative(Native Method)
          at android.content.res.AssetManager.openNonAsset(AssetManager.java:423)
  </code></pre>
  
  <p>activity_maps.xml</p>
  
  <pre><code>&lt;fragment xmlns:android="http://schemas.android.com/apk/res/android"
  
  xmlns:tools="http://schemas.android.com/tools"
  tools:context="com.example.jupiter.projectmap.MapsActivity"
  android:id="@+id/map"
  class="com.google.android.gms.maps.SupportMapFragment"
  android:name="com.google.android.gms.maps.SupportMapFragment"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
   /&gt;
  </code></pre>
  
  <p>MapsActivity.java</p>
  
  <pre><code>package com.example.jupiter.projectmap;
  import android.content.pm.PackageManager;
  import android.location.Location;
  
  import android.os.Build;
  
  import android.os.Bundle;
  import android.support.v4.app.Fragment;
  import android.support.v4.app.ActivityCompat;
  import android.support.v4.app.FragmentManager;
  import android.support.v4.app.FragmentActivity;
  import android.widget.Toast;
  
  import com.google.android.gms.common.ConnectionResult;
  import com.google.android.gms.common.api.GoogleApiClient;
  import com.google.android.gms.location.LocationListener;
  import com.google.android.gms.location.LocationRequest;
  import com.google.android.gms.location.LocationServices;
  import com.google.android.gms.maps.CameraUpdateFactory;
  import com.google.android.gms.maps.GoogleMap;
  import com.google.android.gms.maps.OnMapReadyCallback;
  import com.google.android.gms.maps.SupportMapFragment;
  import com.google.android.gms.maps.model.BitmapDescriptorFactory;
  import com.google.android.gms.maps.model.LatLng;
  import com.google.android.gms.maps.model.Marker;
  import com.google.android.gms.maps.model.MarkerOptions;
  
  public class MapsActivity extends FragmentActivity implements     OnMapReadyCallback,
      GoogleApiClient.ConnectionCallbacks,
      GoogleApiClient.OnConnectionFailedListener,
      LocationListener {
  
  private GoogleMap mMap;
  GoogleApiClient mGoogleApiClient;
  Location mLastLocation;
  Marker mCurrLocationMarker;
  LocationRequest mLocationRequest;
  
  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_maps);
  
  
      // Obtain the SupportMapFragment and get notified when the map is ready to be used.
     SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
              .findFragmentById(R.id.map);
      mapFragment.getMapAsync(this);
  }
  
  
  /**
   * Manipulates the map once available.
   * This callback is triggered when the map is ready to be used.
   * This is where we can add markers or lines, add listeners or move the camera. In this case,
   * we just add a marker near Sydney, Australia.
   * If Google Play services is not installed on the device, the user will be prompted to install
   * it inside the SupportMapFragment. This method will only be triggered once the user has
   * installed Google Play services and returned to the app.
   */
  @Override
  public void onMapReady(GoogleMap googleMap) {
      mMap = googleMap;
      mMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
  
      //Initialize Google Play Services
      if (android.os.Build.VERSION.SDK_INT &gt;= Build.VERSION_CODES.M) {
          if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED &amp;&amp; ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED){
              buildGoogleApiClient();
              mMap.setMyLocationEnabled(true);
          }
      }
      else {
          buildGoogleApiClient();
          mMap.setMyLocationEnabled(true);
      }
  }
  
  protected synchronized void buildGoogleApiClient() {
      mGoogleApiClient = new GoogleApiClient.Builder(this)
              .addConnectionCallbacks(this)
              .addOnConnectionFailedListener(this)
              .addApi(LocationServices.API)
              .build();
      mGoogleApiClient.connect();
  }
  
  @Override
  public void onConnected(Bundle bundle) {
  
      mLocationRequest = new LocationRequest();
      mLocationRequest.setInterval(1000);
      mLocationRequest.setFastestInterval(1000);
      mLocationRequest.setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY);
      if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED &amp;&amp; ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED){
          LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, this);
      }
  
  }
  
  @Override
  public void onConnectionSuspended(int i) {
  
  }
  
  @Override
  public void onLocationChanged(Location location) {
  
      mLastLocation = location;
      if (mCurrLocationMarker != null) {
          mCurrLocationMarker.remove();
      }
  
      //Place current location marker
      LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude());
      MarkerOptions markerOptions = new MarkerOptions();
      markerOptions.position(latLng);
      markerOptions.title("Current Position");
      markerOptions.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_MAGENTA));
      mCurrLocationMarker = mMap.addMarker(markerOptions);
  
      //move map camera
      mMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));
      mMap.animateCamera(CameraUpdateFactory.zoomTo(11));
  
      //stop location updates
      if (mGoogleApiClient != null) {
          LocationServices.FusedLocationApi.removeLocationUpdates(mGoogleApiClient, this);
      }
  
  }
  
  @Override
  public void onConnectionFailed(ConnectionResult connectionResult) {
  
  }
  
  public static final int MY_PERMISSIONS_REQUEST_LOCATION = 99;
  
  @Override
  public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
      switch (requestCode) {
          case MY_PERMISSIONS_REQUEST_LOCATION: {
              // If request is cancelled, the result arrays are empty.
              if (grantResults.length &gt; 0
                      &amp;&amp; grantResults[0] == PackageManager.PERMISSION_GRANTED) {
  
                  // permission was granted. Do the
                  // contacts-related task you need to do.
                  if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED &amp;&amp; ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
  
                      if (mGoogleApiClient == null) {
                          buildGoogleApiClient();
                      }
                      mMap.setMyLocationEnabled(true);
                  }
  
              } else {
  
                  // Permission denied, Disable the functionality that depends on this permission.
                  Toast.makeText(this, "permission denied", Toast.LENGTH_LONG).show();
              }
              return;
          }
  
          // other 'case' lines to check for other permissions this app might request.
          // You can add here other case statements according to your requirement.
      }
  }
  }
  </code></pre>
  
  <p>AndroidManifest.xml</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.example.jupiter.projectmap"&gt;
  
  
  &lt;uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /&gt;
  &lt;uses-permission android:name="android.permission.INTERNET" /&gt;
  &lt;uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /&gt;
  
  &lt;!--
       The ACCESS_COARSE/FINE_LOCATION permissions are not required to use
       Google Maps Android API v2, but you must specify either coarse or fine
       location permissions for the 'MyLocation' functionality. 
  --&gt;
  &lt;uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/&gt;
  &lt;uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /&gt;
  
  
  &lt;application
      android:allowBackup="true"
      android:icon="@mipmap/ic_launcher"
      android:label="@string/app_name"
      android:supportsRtl="true"
      android:theme="@style/AppTheme"&gt;
  
      &lt;!--
           The API key for Google Maps-based APIs is defined as a string resource.
           (See the file "res/values/google_maps_api.xml").
           Note that the API key is linked to the encryption key used to sign the APK.
           You need a different API key for each encryption key, including the release key that is used to
           sign the APK for publishing.
           You can define the keys for the debug and release targets in src/debug/ and src/release/. 
      --&gt;
  
      &lt;meta-data android:name="com.google.android.gms.version"
          android:value="@integer/google_play_services_version" /&gt;
      &lt;meta-data
          android:name="com.google.android.geo.API_KEY"
          android:value="@string/google_maps_key" /&gt;
  
      &lt;activity
          android:name=".MapsActivity"
          android:label="@string/title_activity_maps"&gt;
          &lt;intent-filter&gt;
              &lt;action android:name="android.intent.action.MAIN" /&gt;
  
              &lt;category android:name="android.intent.category.LAUNCHER" /&gt;
          &lt;/intent-filter&gt;
      &lt;/activity&gt;
  &lt;/application&gt;
  
  &lt;/manifest&gt;
  </code></pre>
  
  <p>google_maps_api.xml</p>
  
  <pre><code>&lt;resources&gt;
  &lt;!--
  TODO: Before you run your application, you need a Google Maps API key.
  
  To get one, follow this link, follow the directions and press "Create" at the end:
  
  https://console.developers.google.com/flows/enableapi?apiid=maps_android_backend&amp;keyType=CLIENT_SIDE_ANDROID&amp;r=1C:40:ED:0A:DE:4D:22:ED:F5:E9:6C:95:6E:B2:DD:CD:F7:DF:CD:A6%3Bcom.example.jupiter.projectmap
  
  You can also add your credentials to an existing key, using this line:
  1C:40:ED:0A:DE:4D:22:ED:F5:E9:6C:95:6E:B2:DD:CD:F7:DF:CD:A6;com.example.jupiter.projectmap
  
  Alternatively, follow the directions here:
  https://developers.google.com/maps/documentation/android/start#get-key
  
  Once you have your key (it starts with "AIza"), replace the "google_maps_key"
  string in this file.
  --&gt;
      &lt;string name="google_maps_key" templateMergeStrategy="preserve" translatable="false"&gt; AIzaSyBaJh3y4dAEEW1UVoaIkJjA9tSPKC03i9U&lt;/string&gt;
  &lt;/resources&gt;
  </code></pre>
  
  <p>What is wrong here? why am i getting the error?</p>