2016-08-24 1 views
-2

Hallo Ich versuche, GoogleMap-Fragment in meiner TätigkeitAndroid Google Karte: Fehler beim Hinzufügen MapFragment in Aktivität

Hier ist meine XML hinzuzufügen:

<LinearLayout 
     android:id="@+id/layout_map" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_marginTop="@dimen/list_margin" 
     android:visibility="visible" > 

     <fragment 
      android:id="@+id/map_frame" 
      class="com.google.android.gms.maps.MapFragment" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" /> 
    </LinearLayout> 

Und mein LocateusActivity onCreate Methode

mapFragment = (MapFragment)getFragmentManager().findFragmentById(R.id.map_frame); 

Ich weiß nicht, was schief gelaufen ist. Ich habe diesen Fehler

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.singPost/com.singPost.LocateUsActivity}: android.view.InflateException: Binary XML file line #80: Binary XML file line #80: Error inflating class fragment 
                   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3253) 
                   at android.app.ActivityThread.startActivityNow(ActivityThread.java:2977) 

enter image description here

Jede Hilfe ist sehr zu schätzen wissen. Vielen Dank!

Hallo versuche ich MapFragment zu SupportMapFragment aber denselben Fehler ersetzen und zusammen mit diesem

Caused by: java.lang.IllegalStateException: The meta-data tag in your app's AndroidManifest.xml does not have the right value. Expected 9452000 but found 6587000. You must have the following declaration within the <application> element: <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> 
+0

was ist in Zeile 80 in xml –

+0

Hallo ich habe ein Bild von Zeile 80 in Xml-Datei –

+0

sind Sie Aufruf Karte innerhalb Fragment? –

Antwort

1

Gemäß der official documentation:

Die XML-Layout-Datei

standardmäßig die XML-Datei Dies definiert das Layout der App unter res/layout/activity_maps.xml. Es enthält folgende Komponenten:

<fragment 
    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" 
    android:id="@+id/map" 
    tools:context=".MapsActivity" 
    android:name="com.google.android.gms.maps.SupportMapFragment" /> 

Die Karten Aktivität Java-Datei

standardmäßig die Java-Datei, die die Karten-Aktivität definiert wird MapsActivity.java benannt. Es sollte den folgenden Code nach dem Paketnamen enthalten:

import android.os.Bundle; 
import android.support.v4.app.FragmentActivity; 
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.LatLng; 
import com.google.android.gms.maps.model.MarkerOptions; 

public class MapsActivity extends FragmentActivity implements OnMapReadyCallback { 

    private GoogleMap mMap; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_maps); 
        SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() 
                .findFragmentById(R.id.map); 
        mapFragment.getMapAsync(this); 
    } 

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

        // Add a marker in Sydney, Australia, and move the camera. 
        LatLng sydney = new LatLng(-34, 151); 
        mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney")); 
        mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney)); 
    } 
} 

Wenn Ihre Karten Aktivitätsdatei nicht den obigen Code enthält, den Inhalt der Datei mit dem obigen Code, nach dem Paketnamen ersetzen.

+0

ist es nicht obligatorisch, es MapsActivity zu nennen. –

+0

Natürlich ist es nicht. Es ist eine nette Konvention für ein einfaches Beispiel wie dieses. –

+0

Danke für Ihre Hilfe. Ich denke über einen Fehler in meinem value.string nach, der unterschiedliche Integer-Werte für Google Play-Dienste zurückgibt –

Verwandte Themen