错误在活动映射xml中膨胀类片段

这个项目以前一直在工作。 运行应用程序时,我不断收到InflateException。

04-01 12:16:36.102 14895-14895/com.example.ali.googleandroid E/AndroidRuntime: Process: com.example.ali.googleandroid, PID: 14895 04-01 12:16:36.102 14895-14895/com.example.ali.googleandroid E/AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.ali.googleandroid/com.example.ali.googleandroid.MapsActivity}: android.view.InflateException: Binary XML file line #8: Binary XML file line #8: Error inflating class fragment 04-01 12:16:36.102 14895-14895/com.example.ali.googleandroid E/AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416) 04-01 12:16:36.102 14895-14895/com.example.ali.googleandroid E/AndroidRuntime: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 04-01 12:16:36.102 14895-14895/com.example.ali.googleandroid E/AndroidRuntime: at android.app.ActivityThread.-wrap11(ActivityThread.java) 04-01 12:16:36.102 14895-14895/com.example.ali.googleandroid E/AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 04-01 12:16:36.102 14895-14895/com.example.ali.googleandroid E/AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:102) 04-01 12:16:36.102 14895-14895/com.example.ali.googleandroid E/AndroidRuntime: at android.os.Looper.loop(Looper.java:148) 04-01 12:16:36.102 14895-14895/com.example.ali.googleandroid E/AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:5417) 04-01 12:16:36.102 14895-14895/com.example.ali.googleandroid E/AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method) 04-01 12:16:36.102 14895-14895/com.example.ali.googleandroid E/AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 04-01 12:16:36.102 14895-14895/com.example.ali.googleandroid E/AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 04-01 12:16:36.102 14895-14895/com.example.ali.googleandroid E/AndroidRuntime: Caused by: android.view.InflateException: Binary XML file line #8: Binary XML file line #8: Error inflating class fragment 

MapsActivity.java:

 package com.example.ali.googleandroid; import android.Manifest; import android.annotation.TargetApi; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.location.Criteria; import android.location.Location; import android.location.LocationManager; import android.media.MediaPlayer; import android.os.Build; import android.support.v4.app.ActivityCompat; import android.support.v4.app.FragmentActivity; import android.os.Bundle; import android.support.v4.content.ContextCompat; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.ImageButton; import android.widget.Toast; import com.google.android.gms.common.ConnectionResult; import com.google.android.gms.common.GooglePlayServicesUtil; 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.MapFragment; import com.google.android.gms.maps.OnMapReadyCallback; import com.google.android.gms.maps.SupportMapFragment; import com.google.android.gms.maps.UiSettings; import com.google.android.gms.maps.model.BitmapDescriptorFactory; import com.google.android.gms.maps.model.CameraPosition; import com.google.android.gms.maps.model.LatLng; import com.google.android.gms.maps.model.Marker; import com.google.android.gms.maps.model.MarkerOptions; import java.lang.reflect.Array; import java.util.ArrayList; public class MapsActivity extends AppCompatActivity implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener, LocationListener, GoogleMap.OnMyLocationChangeListener, GoogleMap.OnMarkerClickListener { private static final int REQUEST_FINE_LOCATION = 0; private static int doubleTap =0; static GoogleMap mMap; MediaPlayer mp; GoogleApiClient mGoogleApiClient; LocationRequest mLocationRequest; static Location myLocation; static LocationManager lm; LatLng latLng; SupportMapFragment mFragment; static ArrayList DataLon; static ArrayList DataLatit; static ArrayList DataFirst_Name; static ArrayList DataSurname; public static boolean closeDown = false; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mp = MediaPlayer.create(this, R.raw.two_tone_nav); loadPermissions(Manifest.permission.ACCESS_FINE_LOCATION, REQUEST_FINE_LOCATION); if (!isGooglePlayServicesAvailable()) { finish(); } setContentView(R.layout.activity_maps); mFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map); mMap = mFragment.getMap(); mMap.setMyLocationEnabled(true); mMap.getUiSettings().setZoomControlsEnabled(true); mMap.getUiSettings().setZoomGesturesEnabled(true); buildGoogleApiClient(); mGoogleApiClient.connect(); lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE); if (checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { // TODO: Consider calling // public void requestPermissions(@NonNull String[] permissions, int requestCode) // here to request the missing permissions, and then overriding // public void onRequestPermissionsResult(int requestCode, String[] permissions, // int[] grantResults) // to handle the case where the user grants the permission. See the documentation // for Activity#requestPermissions for more details. return; } myLocation = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER); if (myLocation != null) { double latitude = myLocation.getLatitude(); double longitude = myLocation.getLongitude(); LatLng latLng = new LatLng(latitude, longitude); mMap.moveCamera(CameraUpdateFactory.newLatLng(latLng)); mMap.animateCamera(CameraUpdateFactory.zoomTo(20)); mMap.addMarker(new MarkerOptions().position(new LatLng(latitude, longitude)).title(" You are here!")); } //insert gather data methods GatherDataLocLogon(); GatherUserLogon(); //*************Add for loop to load all submitted diary entries****************** for (int i = 0; i < SignInScreen.DEntry.size(); i++) { String Lat = SignInScreen.Latit.get(i); double DoubleLat = Double.parseDouble(Lat); String Long = SignInScreen.Lon.get(i); double DoubleLong = Double.parseDouble(Long); // mMap.setOnMarkerClickListener(this); LatLng NewLatLng = new LatLng(DoubleLong, DoubleLat); mMap.addMarker(new MarkerOptions() .position(new LatLng(DoubleLong, DoubleLat)) .title(SignInScreen.ETitle.get(i).toString()) .snippet(SignInScreen.DEntry.get(i).toString()) ); mMap.moveCamera(CameraUpdateFactory.newLatLng(NewLatLng)); mMap.animateCamera(CameraUpdateFactory.zoomTo(8)); } } 

activity_maps.xml:

         

清单文件:

                                                   

的build.gradle:

 apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "23.0.2" defaultConfig { applicationId "com.example.ali.googleandroid" minSdkVersion 22 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } productFlavors { } } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.2.1' compile 'com.google.android.gms:play-services:8.4.0' } 

您应该使用fragment class="com.google.android.gms.maps.SupportMapFragment" …而不是android:name="com.google.android.gms.maps.SupportMapFragment"

添加OnResume方法并初始化并设置Map

将此添加到您的清单: