2013-06-07 13 views
6

Po przeprowadzeniu wielu badań, a nie znalezieniu niczego ... szybkim pytaniu, czy ktoś ma pomysł, dlaczego Android Studio nie robi znacznika mapy? Poniższy kod jest fragmentem próbki map w SDK. Dodano już usługi Google Play i wsparcie, ale nic.Android Studio: xmlns: mapa nie działa

To pokazuje Błąd

Unexpected namespace prefix "map" found for tag fragment. 

dziękuję z góry!

<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

brzmi trochę jak ten bug Eclipse: https://code.google.com/p/android/issues/detail? id = 53283 – CommonsWare

+0

Wygląda na to, że jedynym rozwiązaniem jest zrobienie tego na kodzie java zamiast w pliku xml, prawda? Dzięki Ci! – davidcv5

+0

Tak, AFAIK jedynym niezawodnym sposobem, aby to zadziałało, jest kod Java. To jest błąd, który mam nadzieję zostanie naprawiony pewnego dnia ... – CommonsWare

Odpowiedz

0

Miałem również ten problem. Zrobiłem Project/Clean i błąd zniknął i teraz działa dobrze. Zakłada się, że przestrzeń nazw mapy jest poprawnie zdefiniowana powyżej miejsca, w którym jest używana.

0

Używam wersji 0.5.8, a przeglądarka XML podkreśla attrs z mapą: - jednak aplikacja działa poprawnie. YMMMV.

2

Miałem ten sam problem, gdy przenosiłem fragment mapy do FrameLayout (dzięki czemu mogłem dodać przycisk na górze mapy).

Nie wiem, co mam zrobić, jak naprawdę jestem noobem w aplikacjach na Androida i XML, ale wygląda, że ​​znalazłem rozwiązanie :-)

Próbowałem zrobić trick łącznie z prefiksem fragment z osobnego pliku (używając dyrektywy "include") i po umieszczeniu go bez fragmentów definiujących przestrzeń nazw zaproponował mi 2 opcje: xmlns: map = "http://schemas.android.com/apk/res- auto " xmlns: map =" http://schemas.android.com/tools " Zdałem sobie sprawę, że być może drugi będzie działał w oryginalnym pliku (chociaż w oryginalnym pliku Android Studio go nie proponuje, ale tylko pierwszy zamiast tego jeden).

Wniosek: Wystarczy zmienić tę linię: xmlns: map = "http://schemas.android.com/apk/res-auto" z tym: xmlns: map = "http: // schematów. android.com/tools "

JAK WYDOBYCIONY - JESTEM NOOB I MAYBE MOJE ROZWIĄZANIE PRZYCZYNIA SIĘ NIEKTÓRE EFEKTY BOCZNE WIĘC PROSZĘ, ŻE MNIE POZNAĆ, JEŚLI TAK (chociaż wszystko zdawało się działać dobrze do tej pory ...).

To mój roboczy układ mapy za pomocą przycisku na górze i bez błędów:

<?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" załatwił mi sprawę. –

+0

to tylko przestrzeń nazw "narzędzi" z nazwą "map". to nie jest to samo. – alexpfx