Fragmento Google Maps de Google Maps en el xml. Me sale "prefijo de espacio de nombres inesperado"

Estoy tratando de aprender android, y después de haber seguido las instrucciones sobre cómo usar la API de Google Maps V.2 ahora lo tengo funcionando. Sin embargo, las instrucciones sobre cómo configurar el estado inicial de los mapas, que se encuentran en developers.google.com , sugieren un espacio de nombres definido en el archivo xml, en este caso "mapa".

El código xml siguiente da med el error "prefijo de espacio de nombres inesperado" mapa " ". Tratando de definir el xmlns: mapa dentro de la etiqueta de fragmento dio el mismo error, pero con "xmlns".

Estoy obviamente perdiendo algunos conocimientos xml fundamentales aquí, ¿alguien puede ayudarme?

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:map="http://schemas.android.com/apk/res-auto" <!-- Definition --> android:layout_width="match_parent" android:layout_height="match_parent"> <fragment android:id="@+id/map" android:layout_width="match_parent" android:layout_height="match_parent" class="com.google.android.gms.maps.SupportMapFragment" map:cameraBearing="112.5"/> <!-- PROBLEM --> </RelativeLayout> 

Usted tiene que hacer dos cosas:

Primero: https://docs.google.com/document/pub?id=19nQzvKP-CVLd7_VrpwnHfl-AE9fjbJySowONZZtNHzw

Agregue la dependencia a Google Play Services en su proyecto

 Project -> Properties -> Android -> Library, Add -> google-play-services_lib 

Segundo: https://developers.google.com/maps/documentation/android/intro

Seleccione Proyecto> Propiedades, seleccione Ruta de construcción de Java y navegue a Bibliotecas. Seleccione Agregar tarros externos, incluya los siguientes archivos jar y haga clic en Aceptar:

 <android-sdk-folder>/extras/android/compatibility/v4/android-support-v4.jar 

Ahora mi proyecto no muestra más errores 🙂 saludos, marcel

Yo tuve este problema también. Hice Project / Clean y el error se fue y funciona bien ahora.

Tengo el mismo problema hoy. Actualizé el SDK anoche y no vi este problema antes. Tuve el proyecto de demostración de mapa de Android V2 cargado también y hoy en día el archivo "multimap_demo.xml" está mostrando el "prefijo de espacio de nombres inesperado" mapa "encontrado para el fragmento de etiqueta" error. He aplicado el xml incluido sugerido y está funcionando de nuevo. Le daría un +1, pero no tiene crédito.

ACTUALIZACIÓN: Me olvidé de este problema y reelaborado mi código de hoy y eliminado el incluir. Por supuesto, el error volvió. Encontré esto y lo agregué al diseño en la estrofa del fragmento:

 tools:ignore="MissingPrefix" 

Parece al menos enmascarar el problema.

Actualización: Este error aparentemente sucede debido a un error en Android Lint Tool. Consulte el problema https://code.google.com/p/gmaps-api-issues/issues/detail?id=5002

Hay otra solución que le permite seguir configurando todo en archivos de diseño en lugar de en el código Java. Dado que el error sólo parece ocurrir cuando el SupportMapFragment es un hijo de un ViewGroup en el archivo de diseño, se puede extraer el elemento <fragment> en su propio archivo de diseño y luego sólo se incluyen en el diseño deseado más grande.

Por ejemplo, dado que está intentando hacer esto:

My_awesome_layout.xml

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

En su lugar podría romperlo así:

Include_map_fragment.xml

 <?xml version="1.0" encoding="utf-8"?> <fragment xmlns:android="http://schemas.android.com/apk/res/android" xmlns:map="http://scheams.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:cameraBearing="112.5"/> 

My_awesome_layout.xml

 ... <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <include android:id="@+id/map" android:layout_width="match_parent" android:layout_height="match_parent" layout="@layout/include_map_fragment" /> </RelativeLayout> 

Bueno, yo sé, esto no es realmente una solución para el problema de espacio de nombres, tal vez esto podría ayudar.

Como no conozco ninguna solución XML, lo hice de forma programática:

 mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap(); mMap.setTrafficEnabled(true); setupMapView(); private void setupMapView(){ UiSettings settings = mMap.getUiSettings(); mMap.animateCamera(CameraUpdateFactory.newCameraPosition( new CameraPosition(new LatLng(50.0, 10.5), 13.5f, 30f, 112.5f))); // zoom, tilt, bearing mMap.setTrafficEnabled(true); settings.setAllGesturesEnabled(true); settings.setCompassEnabled(true); settings.setMyLocationButtonEnabled(true); settings.setRotateGesturesEnabled(true); settings.setScrollGesturesEnabled(true); settings.setTiltGesturesEnabled(true); settings.setZoomControlsEnabled(true); settings.setZoomGesturesEnabled(true); } 

Así que el mapa de Google se inicializa por defecto pero obtiene sus parámetros directamente después de que desde el código.

Tengo exactamente el mismo problema. El ejemplo proporcionado

 <fragment xmlns:android="http://schemas.android.com/apk/res/android" 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:cameraBearing="112.5" map:cameraTargetLat="-33.796923" map:cameraTargetLng="150.922433" map:cameraTilt="30" map:cameraZoom="13" map:mapType="normal" map:uiCompass="false" map:uiRotateGestures="true" map:uiScrollGestures="false" map:uiTiltGestures="true" map:uiZoomControls="false" map:uiZoomGestures="true"/> 

Funciona bien, pero si intenta agregarlo a un elemento padre se niega a aceptar los xmlns. Si mueve la declaración xmlns al elemento superior, todavía se niega a aceptar el prefijo de mapa en el fragmento:

 Unexpected namespace prefix "map" found for tag fragment 

Ahora, si amplía SupportMapFragment y utiliza una vista personalizada como esta:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:map="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="5dp"> <com.google.android.gms.maps.MapView android:id="@+id/map_view" android:layout_width="match_parent" android:layout_height="match_parent" map:cameraBearing="0" map:cameraTargetLat="54.25" map:cameraTargetLng="-4.56" map:cameraTilt="30" map:cameraZoom="5.6" map:mapType="normal" map:uiCompass="true" map:uiRotateGestures="true" map:uiScrollGestures="true" map:uiTiltGestures="true" map:uiZoomControls="false" map:uiZoomGestures="true"> </com.google.android.gms.maps.MapView> </LinearLayout> 

… entonces no se queja y el mapa resultante es correcto. Para mí eso plantea más problemas sin embargo, como no hay ejemplos decentes de cómo hacer esta subclase, usted tiene que hacer más que anular onCreateView y cuando intento hacer nada al mapa posteriormente obtendré lo siguiente:

 java.lang.IllegalStateException: Map size should not be 0. Most likely, layout has not yet occured for the map view. 

… incluso si espero 30 segundos después de que el mapa haya aparecido. (Solo primera carga)

No creo que puedas incluir comentarios XML dentro de una etiqueta como la que estás haciendo con <!-- Definition --> . ¿Si usted quita que hace el problema todavía ocurre?

Obviamente esto es solo un error de verificación de Lint de mis-lead. Puede eliminarlo cuando, en la vista de Problemas de Eclipse, haga clic con el botón derecho del ratón en la línea con el error, seleccione la opción Solución rápida y seleccione, por ejemplo, Ignorar Comprobar proyecto .

El error desaparece, el proyecto se basa y la aplicación se ejecuta perfectamente bien.

  • No se pudo obtener los datos xml de res en Android 3.0 y versiones posteriores
  • Los datos Xml se convierten en datos Json en android
  • Obtener la lista de valores utilizando dom parser en android
  • Lectura de un archivo .xml desde sdcard
  • Android cómo identificar audio / video de xml?
  • Analizador de XML común de Android
  • Análisis del archivo gpx local en Android
  • La forma más fácil de escribir y leer un XML
  • Manejando espacios de nombres Xml con XmlPullParser
  • Error al intentar probar análisis XML con Robolectric
  • ¿Cómo enviar la solicitud SOAP y analizar la respuesta SOAP en formato XML en Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.