2017-04-25 10 views
-1

私は表示しようとしているマップに奇妙な問題があります。 「バイナリ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

を助けることを願って、私はGoogleのAPIコンソールでGoogle MapsのAPIを有効にしなかった、私はそれを解決スタックトレース – X09

+1

をご提示ください。 –

+0

私の答えを試してください。これが役に立ちますようにお願いします。 – FAT

答えて

0

あなたがcom.google.android.gms.maps.MapView最高prectice OT利用FragmentからではなくSupportMapFragment

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

あなたSupportMapFragmentを使用していると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()は推奨されていません。 –

関連する問題