2013-06-07 6 views
6

Nach viel Forschung, und nichts zu finden ... schnelle Frage, hat jemand eine Idee, warum Android Studio nicht die Map-Tag nimmt? Der folgende Code ist ein Fragment des Kartenbeispiels im SDK. Bereits hinzugefügt Google Play Services Lib und Support, aber nichts.Android Studio: xmlns: Karte funktioniert nicht

Es zeigt den Fehler

Unexpected namespace prefix "map" found for tag fragment. 

Vielen Dank im Voraus!

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

klingt viel wie dieser Eclipse-Bug: https://code.google.com/p/android/issues/detail? id = 53283 – CommonsWare

+0

So scheint es, als wäre die einzige Lösung, es auf den Java-Code anstelle der XML-Datei zu tun, richtig? Danke! – davidcv5

+0

Ja, AFAIK ist die einzige zuverlässige Möglichkeit, dies über den Java-Code zum Laufen zu bringen. Dies ist ein Fehler, der hoffentlich irgendwann behoben wird ... – CommonsWare

Antwort

0

Ich hatte dieses Problem auch. Ich habe Project/Clean gemacht und der Fehler ist weg und es funktioniert jetzt gut. Dies setzt voraus, dass der Map-Namespace oben korrekt definiert ist, wo er verwendet wird.

0

Ich habe 0.5.8 laufen und der XML-Viewer unterstreicht die attrs mit map: - aber die App ist in Ordnung. YMMMV.

2

Ich hatte das gleiche Problem, nachdem ich das Kartenfragment in FrameLayout verschoben habe (damit ich eine Schaltfläche oben auf der Karte hinzufügen konnte).

Ich weiß nicht, was ich wirklich, wie ich ein noob in Android-Apps und XML bin getan haben, aber es sieht, dass ich die Lösung :-)

fand ich versucht, den Trick zu machen, einschließlich der Fragment aus einer separaten Datei (mit 'include' Direktive) und nachdem ich das nackte Kartenfragment ohne Namespace-Definitionen eingefügt habe, schlug es mir 2 Optionen vor: xmlns: map = "http://schemas.android.com/apk/res- auto " xmlns: map =" http://schemas.android.com/tools " Ich erkannte, dass vielleicht der zweite in der Originaldatei funktionieren wird (obwohl Android Studio in der Originaldatei nicht vorschlägt, sondern nur die erste eins stattdessen).

Fazit: einfach diese Zeile: xmlns: map = "http://schemas.android.com/apk/res-auto" mit diesem: xmlns: map = "http: // Schema. android.com/tools "

WIE ICH ERWÄHNTE - ICH BIN EIN NOOB UND VIELLEICHT MÖCHTE MEINE LÖSUNG ETWAS SEITLICHE WIRKUNGEN, BITTE LASSEN SIE MICH WISSEN, WENN SO (obwohl bis jetzt alles gut zu funktionieren schien ...).

Das ist mein Arbeitskartenlayout mit einem Knopf ist auf der Oberseite und ohne Fehler:

<?xml version="1.0" encoding="utf-8"?> 
 

 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
 
    xmlns:tools="http://schemas.android.com/tools" 
 
       
 
    xmlns:map="http://schemas.android.com/tools" 
 
       
 
    tools:context="com.maverickrider.myapp.inviteActivity.MapsActivity" 
 
    android:layout_width="match_parent" 
 
    android:layout_height="match_parent" 
 
    android:background="@color/purpura_E51B4A"> 
 

 
<fragment 
 
    android:layout_width="match_parent" 
 
    android:layout_height="match_parent" 
 
    android:id="@+id/map" 
 
    android:name="com.google.android.gms.maps.MapFragment" 
 

 
    map:cameraTargetLat="51.513259" 
 
    map:cameraTargetLng="-0.129147" 
 
    map:cameraTilt="30" 
 
    map:cameraZoom="13" 
 
    /> 
 

 
<Button 
 
    android:id="@+id/startActivityButton" 
 
    android:layout_width="wrap_content" 
 
    android:layout_height="wrap_content" 
 
    android:gravity="center_horizontal|center_vertical" 
 
    android:onClick="cokolwiek" 
 
    android:text="Baton z dupy" 
 
    android:layout_alignParentBottom="true" 
 
    /> 
 

 
</FrameLayout >

+0

xmlns: map = "http://schemas.android.com/tools" hat den Trick für mich gemacht. –

+0

Dies ist nur der Namespace "Tools" mit dem Namen "map". Es ist nicht das Gleiche. – alexpfx