二进制XML文件行#8:错误的膨胀类片段/灰色背景

问题描述:

我有一个奇怪的问题,我试图显示的地图。有时会崩溃,并出现下一个错误:“二进制XML文件行#8:二进制XML文件行#8:错误扩展类片段”,有时会显示带有Google徽标的灰色背景(如Google地图的背景)。 我已经搜索并尝试了很多解决问题,没有成功。 下面是代码:二进制XML文件行#8:错误的膨胀类片段/灰色背景

public class MapFragment extends Fragment implements OnMapReadyCallback{ 

    private GoogleMap mMap; 

    public MapFragment() { 
     // Required empty public constructor 
    } 

    public static MapFragment newInstance() { 
     MapFragment fragment = new MapFragment(); 
     return fragment; 
    } 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     View view=inflater.inflate(R.layout.fragment_map, container, false); 

     SupportMapFragment mapFragment = (SupportMapFragment) getChildFragmentManager() 
       .findFragmentById(R.id.map); 
     mapFragment.getMapAsync(this); 

     return view; 
    } 

    @Override 
    public void onMapReady(GoogleMap googleMap) { 
     this.mMap = googleMap; 
    } 

    // TODO: Rename method, update argument and hook method into UI event 
    public void onButtonPressed(Uri uri) { 

    } 

    public interface OnMapFragmentInteractionListener { 
     // TODO: Update argument type and name 
     void onMapFragmentInteraction(Uri uri); 
    } 

    public void updateMap(String latitude, String longitude){ 
     mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(Double.parseDouble(latitude),Double.parseDouble(longitude)),15)); 
    } 
} 

和XML文件:

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout 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="com.andrei.myapp.MapFragment"> 

    <fragment xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:tools="http://schemas.android.com/tools" 
     android:id="@+id/map" 
     class="com.google.android.gms.maps.SupportMapFragment" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 

</FrameLayout> 
+0

请出示堆栈跟踪 – X09

+1

我解决这个问题,我没有能够在谷歌API控制台谷歌地图API。 –

+0

试试我的回答。希望这将有助于 – FAT

当您使用SupportMapFragmentFragment最佳prectice OT使用com.google.android.gms.maps.MapView代替SupportMapFragment

<com.google.android.gms.maps.MapView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/map" /> 

MapFragment类如下:

public class MapFragment extends Fragment { 

    MapView mapView; 
    GoogleMap mMap; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     View view = inflater.inflate(R.layout.fragment_map, container, false); 

     mapView = (MapView) view.findViewById(R.id.map); 
     mapView.onCreate(savedInstanceState); 

     mMap = mapView.getMap(); 
     mMap.getUiSettings().setMyLocationButtonEnabled(false); 
     mMap.setMyLocationEnabled(true); 

     try { 
      MapsInitializer.initialize(this.getActivity()); 
     } catch (GooglePlayServicesNotAvailableException e) { 
      e.printStackTrace(); 
     } 

     CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngZoom(new LatLng(13.1, -37.9), 10); 
     mMap.animateCamera(cameraUpdate); 

     return view; 
    } 

    @Override 
    public void onResume() { 
     mapView.onResume(); 
     super.onResume(); 
    } 

    @Override 
    public void onPause() { 
     super.onPause(); 
     mapView.onPause(); 
    } 

    @Override 
    public void onDestroy() { 
     super.onDestroy(); 
     mapView.onDestroy(); 
    } 

} 

希望这将有助于〜

+0

getMap()已被弃用。 –