android - significa - google maps javascript api error: apinotactivatedmaperror
Error al cargar el mapa. Error al contactar con el problema de los servidores de Google con google maps api v2 (17)
Esta pregunta ya tiene una respuesta aquí:
He estado tratando de aplicar una aplicación de Google Map en mi aplicación de Android usando la API v2 durante los últimos dos días, sin éxito. Todo lo que consigo cada vez es un
Google Maps Android API(16603): Failed to load map. Error contacting Google servers. This is probably an authentication issue (but could be due to network errors).
He seguido el tutorial de configuración de Google ( https://developers.google.com/maps/documentation/android/start ), probé varias veces con diferentes proyectos en diferentes áreas de trabajo, probé diferentes cuentas de Google, revisé varias respuestas y sugerencias aquí en StackOverflow , pero fue en vano.
Estoy usando Eclipse 4.2.2 con Android SDK Tools 22.01 y he instalado los servicios de Google Play (rev. 7), también he importado google-play-services_lib
en mi área de trabajo y he agregado una referencia a mi proyecto de Android.
Aquí está mi código:
AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.googlemapdemo"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<permission
android:name="com.example.googlemapdemo.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission android:name="com.example.googlemapdemo.permission.MAPS_RECEIVE"/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true"/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.googlemapdemo.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="my_api_key" />
</application>
</manifest>
activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:map="http://schemas.android.com/apk/res-auto"
android:id="@+id/the_map"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:name="com.google.android.gms.maps.SupportMapFragment"
/>
MainActivity.java
package com.example.googlemapdemo;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.Menu;
public class MainActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
También creé un proyecto de API en https://code.google.com/apis/console/ donde he habilitado el servicio de Google Maps Android API v2
. Luego obtuve mi huella dactilar del certificado de depuración SHA1 usando
keytool -list -v -keystore "C:/Users/my_user_name/.android/debug.keystore" -alias androiddebugkey -storepass android -keypass android
e ingresó eso y el nombre del paquete en la consola de la API, obtuvo la clave de la API y la puso en el manifiesto (donde está my_api_key
). Este procedimiento lo repetí varias veces, regenerando la llave pero con el mismo resultado.
¿Alguien podría ayudar con esto o sugerir algo más que podría intentar? ¡Cualquier ayuda será apreciada!
Asegúrate de que tienes apk firmado con la tecla correcta
http://developer.android.com/tools/publishing/app-signing.html
Asegúrese de que "Google Maps Android API v2" esté habilitado, bajo la consola de Google APIs, Servicios (vea la captura de pantalla a continuación. Si no está habilitado, no recibirá un error que indique que el servicio está deshabilitado aunque ingresó la tecla SHA1).
Asegúrese de que está utilizando la huella digital del certificado de depuración y no una huella digital de lanzamiento en la Consola de desarrolladores de Google. Las instrucciones para encontrar su clave de depuración se pueden encontrar here .
Asegúrese de seguir las instrucciones cuidadosamente en la documentación que se encuentra en:
https://developers.google.com/maps/documentation/android/start#obtain_a_google_maps_api_key
A partir del nuevo ADT, debería ver un mensaje de error en el visor logcat que le brinda instrucciones explícitas sobre dónde ir, qué habilitar y los detalles que necesita pegar en la huella digital de Android y los detalles de la aplicación. Vea abajo;
Unos pocos gochas;
Habilite AMBOS API de Android de Google Maps v2 Y API de desarrollador de Android Google Play en la consola de desarrolladores Esto me tiene :)
Asegúrese de que está utilizando el almacén de claves correcto para encontrar el hash SHA1 (esto se puede encontrar en la ventana-> preferencias-> android-> compilar y buscar SHA1) ¡Esto diferirá de su almacén de claves de producción! De lo contrario, puede usar keytool -list -v -keystore YOURKEYSTORE.keystore -alias YOURALIAS para ver el SHA1
Añade tus elementos DENTRO de tus etiquetas
Agregue sus elementos DENTRO de la etiqueta <.manifest> (encima de la etiqueta)
Creo que es el problema de su clave API.
Pruebe el proyecto de ejemplo de Android para mapas (servicio de Google Play) del nuevo proyecto.
y agregue su clave API en el archivo AndroidManifest.xml de mapas.
Si no funciona, será el problema de la clave API.
Después de pasar varias horas y seguir cada consejo de , hice que funcionara intentando una última cosa.
Quería que mi mapa se mostrara en otra actividad a la que llamo mapActivity y no mainActivity. así que cuando creé la clave sh1 en la consola de Google API, escribí el nombre del paquete para mi mapActivity.
!! PERO, siempre debe ser el nombre del paquete de la actividad principal, aunque no muestres el mapa allí, por lo tanto = packagename.appname
de la actividad principal
Este permiso solucionó el problema.
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
He encontrado una nueva solución que fue mi error tonto.
Es posible que haya cambiado el application package name
después de la integración de Google Map.
Una huella digital de certificado SHA1 y el nombre del paquete (separados por un punto y coma) por línea. Ejemplo:
45:B5:E4:6F:36:AD:0A:98:94:B4:02:66:2B:12:17:F2:56:26:A0:E0;com.example
Compruebe la consola de Google API
He resuelto este tipo de problema, espero que las personas que encuentran el mismo problema conmigo (espero que nadie más cometa el mismo error) lo encuentren útil
Mi causa fue que cometí un error cuando creé el proyecto, el nombre del paquete era incorrecto, luego cambié el nombre del paquete del proyecto, esto generará 2 aplicaciones con el mismo nombre pero con un nombre diferente. a partir de aquí los mapas ya no funcionan. Entonces, incluso si cambié la clave de la API de Google del lado del servidor, todavía no funcionará.
solución: intente desinstalar ambas aplicaciones primero y luego limpie la solución. y el mapa aparece de nuevo.
La respuesta para mi problema similar es agregar:
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
Lo encontré después de todo, después de apagar WiFi en el dispositivo que estaba usando. Parece que al depurar a través de WiFi también necesitas el
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
en el manifiesto. No sé si fue solo mi caso o es algo general, pero supongo que debería estar en la documentación en algún lugar (no lo es).
Entonces, si estás leyendo esto y tienes problemas similares, intenta desactivar WiFi o agregar el permiso anterior junto con los demás.
Me encontré con el mismo problema y encontré que este conjunto de permisos funciona.
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
Mi solución fue usar el archivo correcto.
en mi caso, utilicé debug.keystore en C: / Users / .android para generar SH1 KEY
después de intentarlo varias veces, un archivo anotador encontrado en C: / Users // Downloads / adt-bundle-windows-x86_64 / adt-bundle-windows / sdk.android y lo usa, para generar la clave SH1
y luego copie 45:B5:E4:6F:36:AD:0A:98:94:B4:02:66:2B:12:17:F2:56:26:A0:E0
valora el https://code.google.com/apis/console clave api
Todo funciona de nuevo
Sencillo.
Si está seguro de que la clave API es correcta y este error sigue apareciendo en Logcat, intente esto:
- Desinstalar la aplicación desde el dispositivo.
- Limpia el proyecto
- Y ejecutar de nuevo en el dispositivo
El mapa ahora debería aparecer en el dispositivo ... esto funcionó para mí ... saludos :)
Solo para decir, estaba seguro de que hice todo bien, pero finalmente noté que el nombre del paquete en el proyecto no era el mismo que el declarado en el AndroidManifest.xml, por lo que no es el mismo que en la consola de las API de Google.
Adivina qué, lo cambié y ... ¡tadaa funcionó!
Así que para quien venga aquí, verifica eso también!
Solo pasa unas horas frustrantes con este mismo problema.
Estaba intentando ejecutar la aplicación mapdemo de Google. Las nuevas claves generadas, etc., todavía no se ejecutan.
La solución simple como se detalla arriba fue eliminar la aplicación de la tableta y ejecutar nuevamente para eclipse. El problema se fue.
En Eclipse: Window, Preferences, Android, Build, SHA1, la huella dactilar desde el almacén de claves de depuración es el valor que necesita (esto coincide con la forma documentada de Google utilizando Keytool desde la línea de comandos).
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="my_api_key" />
android: value = "my_api_key" debe ser una clave real que se obtiene de https://code.google.com/apis/console