Spanish Maps no carga la marca ni muestra el mapa

desof

Well-Known Member
Licensed User
Longtime User
Hola Amigos estoy siguiendo el Tutorial de EREL de Maps y lo he configurado y se me está ejecutando sin ningún error en la consola pero sin embargo no me muestra nada .....

1PjKz6ftt.png



y este es el code

B4X:
#Region  Project AttributesMAPSB4A Example
   #VersionCode: 1
   #VersionName:
   'SupportedOrientations possible values: unspecified, landscape or portrait.
   #SupportedOrientations: unspecified
   #CanInstallToExternalStorage: False
    #AdditionalJar: com.google.android.gms:play-services-maps

#End Region

#Region  Activity Attributes
   #FullScreen: False
   #IncludeTitle: True
#End Region

'Activity module
Sub Process_Globals

End Sub

Sub Globals
    Private gmap As GoogleMap
    Private MapFragment1 As MapFragment
End Sub

Sub Activity_Create(FirstTime As Boolean)
    Activity.LoadLayout("1")
    If MapFragment1.IsGooglePlayServicesAvailable = False Then
        ToastMessageShow("Please install Google Play Services.", True)
    End If
'    MapFragment1.DesignerCreateView=True
End Sub

Sub MapFragment1_Ready
    gmap = MapFragment1.GetMap
    Dim m1 As Marker = gmap.AddMarker(10, 30, "test")
    m1.Snippet = "This is the snippet"
   
    Dim m2 As Marker = gmap.AddMarker(100, 3, "test2")
    m2.Snippet = "This is the snippet2"
End Sub



Que me falta?

En el manifest tengo así configurado

AddManifestText(
<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="23"/>
<supports-screens android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:anyDensity="true"/>)
SetApplicationAttribute(android:icon, "@drawable/icon")
SetApplicationAttribute(android:label, "$LABEL$")
'End of default text.
AddApplicationText(<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyAg3VtD1WJvEWFJa2LstW17UeOgM-xxxx"/>
<meta-data android:name="com.google.android.gms.version"
android:value="@Integer/google_play_services_version" />
)
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola:

Tendrias que añadir esto en el manifest, aunque el problema es que no inicializas el mapa.
B4X:
<permission
    android:name="$PACKAGE$.permission.MAPS_RECEIVE"
    android:protectionLevel="signature"/>
<uses-feature android:glEsVersion="0x00020000" android:required="true"/>)

Y añadir estos permisos, por si los vas a utilizar
B4X:
AddPermission(android.permission.ACCESS_FINE_LOCATION)
AddPermission(android.permission.ACCESS_LOCATION_EXTRA_COMMANDS)
AddPermission(android.permission.ACCESS_COARSE_LOCATION)

En el Globals crear un panel donde ubicaras el mapa
B4X:
Dim MapPanel As Panel         'Contenedor del mapa para versiones de Android superiores a 2.3 (API 11+)

Inicializas el mapa asi:
B4X:
   ' posiciona y dimensiona el contenedor del mapa donde quieras
   MapPanel.Top = 0
   MapPanel.Left = 0
   MapPanel.Height = 100%y
   MapPanel.Width = 100%x



If MapFragment1.IsGooglePlayServicesAvailable = False Then
ToastMessageShow("Please install Google Play Services.", True)EndIf
else
  MapFragment1.Initialize("MapFragment1", MapPanel) ' inicializar mapa
end if


Cuando salte el evento haces la comprobacion y cargas los marcadores
B4X:
Sub MapFragment1_Ready


 
  if gmap.IsInitialized = False Then
     Try
        gmap = MapFragment1.GetMap
      Catch
         Log("Error inicializando el mapa")
       End Try
  End If

   'Si el mapa no se inicializa correctamente...
   If gmap.IsInitialized = False Then
     ToastMessageShow("error inicializando el mapa", True)
     Return
   End if

' cargas marcadores

Dim m1 AsMarker = gmap.AddMarker(10, 30, "test")
m1.Snippet = "This is the snippet"
Dim m2 AsMarker = gmap.AddMarker(100, 3, "test2")
m2.Snippet = "This is the snippet2"

' Haces visible el mapa
MapPanel.visible = True
MapPanel.BringToFront

End Sub

IMPORTANTE: Supongo que en el designer habras creado el MapFragment1 con un CustomView


Saludos
 
Last edited:

rscheel

Well-Known Member
Licensed User
Longtime User
El problema lo tienes en los permisos, necesitas runtime permissions ya que tienes el android:targetSdkVersion="23" y estas usando permisos desde el 22 hacia atrás.

Puedes mirar el tutorial que publique hace tiempo atrás acá en el foro de google maps.

Saludos
 

desof

Well-Known Member
Licensed User
Longtime User
El problema lo tienes en los permisos, necesitas runtime permissions ya que tienes el android:targetSdkVersion="23" y estas usando permisos desde el 22 hacia atrás.

Puedes mirar el tutorial que publique hace tiempo atrás acá en el foro de google maps.

Saludos
NO HAY CASO !! Estuve mirando tbn tu tutorial y lo hice pero sigo teniendo el mismo problema.
Me puedes pasar una captura de que servicios hay que tener instalados desde el SDK Manager !
Creo que debe venir poor ahi mi problema.
 

desof

Well-Known Member
Licensed User
Longtime User
YA LO HICE !
ahora agregue esto como lo planteas en tu tutorial

B4X:
    #AdditionalRes: $AndroidSDK$\extras\google\google_play_services\libproject\google-play-services_lib\res, com.google.android.gms 'esta es la ruta donde se encuentra instalada su SDK de android.
#ExcludeClasses: .games, .drive, .fitness, .wearable, .measurement, .cast, .auth, .nearby
#ExcludeClasses: .tagmanager, .analytics, .wallet, .plus, .vision, .gcm
'remove the following line if you use AdMob
#ExcludeClasses: .ads

i obtengo este error
ERROR: resource directory 'D:\Android\android-sdk\tools\..\extras\google\google_play_services\libproject\google-play-services_lib\res' does not exist

por eso digo que me falta alguna dependencia. Si comento esa linea que provoca el error corre pero queda en blanco...

NO PUEDE SER LA CLAVE API ERRONEA?
 

bgsoft

Well-Known Member
Licensed User
Longtime User
YA LO HICE !
ahora agregue esto como lo planteas en tu tutorial

B4X:
    #AdditionalRes: $AndroidSDK$\extras\google\google_play_services\libproject\google-play-services_lib\res, com.google.android.gms 'esta es la ruta donde se encuentra instalada su SDK de android.
#ExcludeClasses: .games, .drive, .fitness, .wearable, .measurement, .cast, .auth, .nearby
#ExcludeClasses: .tagmanager, .analytics, .wallet, .plus, .vision, .gcm
'remove the following line if you use AdMob
#ExcludeClasses: .ads

i obtengo este error
ERROR: resource directory 'D:\Android\android-sdk\tools\..\extras\google\google_play_services\libproject\google-play-services_lib\res' does not exist

por eso digo que me falta alguna dependencia. Si comento esa linea que provoca el error corre pero queda en blanco...

NO PUEDE SER LA CLAVE API ERRONEA?


Hola, independientemente de que tengas otro error, ese error (ERROR: resource directory 'D:\Android\android-sdk\tools\..\extras\google\google_play_services\libproject\google-play-services_lib\res' does not exist) te está diciendo claramente que no existe ese directorio

Haz una búsqueda del fichero google-play-services.jar y donde esté (dentro de libs) si vuelves una carpeta atras ahí esta la carpeta RES.

En B4A en el menú Tools/ConfigurePaths En Android.jar debes de darle el path donde tengas instalada la version de sdk que estas apuntando en targetSdkVersion = 23 (del manifest)

Como bien dice Rscheel, si bajas a sdk 22 tendras menos problemas, pero tendras que configurarlo en B4A

"Normalmente" las sdk estan instaladas en c:\Archivos de programa\Android\android-sdk\extras\google\google_play_services\libproject\google-play-services_lib\res

por eso digo que me falta alguna dependencia. Si comento esa linea que provoca el error corre pero queda en blanco...

NO PUEDE SER LA CLAVE API ERRONEA?

Si quieres un consejo, corrige primero ese error y no te compliques si puede ser otra cosa. Mejor ir paso a paso que cambiarlo todo por que no sabras que tienes mal.

Saludos
 
Last edited:

rscheel

Well-Known Member
Licensed User
Longtime User
Creo que hay que aclarar un punto importante primero que nada, consultarte que versión de B4A estas usando?
 

desof

Well-Known Member
Licensed User
Longtime User
hola amigos, tratare de ser claro.
Baje el manifest a 22 como me dijeron

Tengo instalado el SDK ya hace mucho tiempo en el disco D por que no tengo espacio en C y tengo otros muchos proyectos que todos me anda bien!
Ahora he configurado el path de Android.jar en D:\Android\android-sdk\platforms\android-22\android.jar esta bien?
Y respecto al archivo google-play-services.jar lo tengo en mi sistema pero dentro de algunos proyectos que he bajado y no se sera el correcto.
Y siguiendo la ruta que me indican donde deberia estar llego hasta el nivel que muestra la imagen
2jHpos8od.png



 

rscheel

Well-Known Member
Licensed User
Longtime User
Estimado debe leer el tutorial que le compartí mas arriba atentamente, genere un proyecto nuevo, en cuanto genere la api key en la consola de google debe colocar el Packge de su proyecto de esa manera la api apuntara a su aplicación, también cuando genere la api key debe darle permisos para ser usada por aplicaciones android.

Siga los pasos para B4A v6+ no para B4A v5.8, el ejemplo publicado esta probado y funcionando no mueva nada del sdk de android.

recuerde que debe tener los google-play-services instalados en su sdk.

Saludos espero le sirva.
 

desof

Well-Known Member
Licensed User
Longtime User
PArece ser muy sencillo pero no logro levantar el proyecto.
Pienso que sería mucho mas simple tener un ejemplo para descargar (cosa que pienso hacer cuando logre hacerlo funcionar)
TENGO actualizado los servicios de Play-services
 

rscheel

Well-Known Member
Licensed User
Longtime User
PArece ser muy sencillo pero no logro levantar el proyecto.
Pienso que sería mucho mas simple tener un ejemplo para descargar (cosa que pienso hacer cuando logre hacerlo funcionar)
TENGO actualizado los servicios de Play-services

Puedes adjuntar tu proyecto o enviarlo por mensaje privado para revisarlo?
 

desof

Well-Known Member
Licensed User
Longtime User
SI ahi va!

lo acabo de crear de cero luego de tu ultima ayuda. Segui el ejemplo del tutorial para B4 6+
Y me sigue sin mostrar el mapa. Y veo una etiqueta en rojo que dice 0 km/h
 

Attachments

  • maps_test.zip
    8.7 KB · Views: 335

rscheel

Well-Known Member
Licensed User
Longtime User
SI ahi va!

lo acabo de crear de cero luego de tu ultima ayuda. Segui el ejemplo del tutorial para B4 6+
Y me sigue sin mostrar el mapa. Y veo una etiqueta en rojo que dice 0 km/h

Dale lo reviso para mañana te posteo acá la respuesta, saludos.
 

rscheel

Well-Known Member
Licensed User
Longtime User
El ejemplo que te adjunto esta funcionando.

La configuración de la consola de google debe quedar de la siguiente manera

Captura.PNG

La Huella digital del certificado SHA-1 la encuentras en b4a

Sin título.png

Luego en el cuadro de Signature (read-only) entre MD5 y SHA256

Bueno espero te sirva esta ayuda.
 

Attachments

  • maps_testv2.zip
    8.7 KB · Views: 399

desof

Well-Known Member
Licensed User
Longtime User
Descargue tu archivo!
Verifique en la Consola de google y le puse el nombre del paquete com.googlemaps.prueba como esta el proyecto y guarde los cambios.
Verifique el Sha1 y esta correcto desde la firma de B4A y la consola.
Corro el ejemplo en mi Motorola G3 y se abrio y quedo como siempre sin cargar el Mapa luego de unos segundos se cerro la aplicación con un mensaje de error inesperado.
Lo abrí de nuevo y hace 5 minutos que esta abierto mientras escribo esto y no se volvió a cerrar y la etiqueta en Rojo por ahi registra actividad me muestra 0 km/h , 1 km/h, 2 km/h
Puede ser algo local de mi ubicación ?
 

rscheel

Well-Known Member
Licensed User
Longtime User
Intenta mover el mapa, o hacerle zoom para ver si carga algo, no se me ocurre nada mas la verdad, no se si otro miembro del foro acá conozca algo mas que pueda aportar.
 

desof

Well-Known Member
Licensed User
Longtime User
Intenta mover el mapa, o hacerle zoom para ver si carga algo, no se me ocurre nada mas la verdad, no se si otro miembro del foro acá conozca algo mas que pueda aportar.

Muchas gracia amigo!!!

Ya hice eso y nada cambia ni responde. He probado con otro móvil más viejo y hace exactamente lo mismo y el maps funciona correctamente.
Es una funcionalidad que deberá esperar entonces para mi aplicación.
Tampoco se que otra cosa evaluar.
 
Top