Error de autorización de Google Maps Android API v2

Mis pasos:

  • obtuvo el código SHA1 de debug.keystore
  • crear la aplicación en la consola google apis
  • habilitado google map api v2
  • entrada SHA1; my.package.name
  • obtener la clave de API
  • archivo creado de AndroidManifest:

                       
  • diseño creado

  • poner “google-play-services.jar” a libs

Después de la comstackción, tengo un locking:

  ERROR/AndroidRuntime(10182): FATAL EXCEPTION: main java.lang.NoClassDefFoundError: com.google.android.gms.R$styleable at com.google.android.gms.maps.GoogleMapOptions.createFromAttributes(Unknown Source) at com.google.android.gms.maps.MapFragment.onInflate(Unknown Source) at android.app.Activity.onCreateView(Activity.java:4716) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:680) at android.view.LayoutInflater.inflate(LayoutInflater.java:466) at android.view.LayoutInflater.inflate(LayoutInflater.java:396) at android.view.LayoutInflater.inflate(LayoutInflater.java:352) at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:270) at android.app.Activity.setContentView(Activity.java:1881) at com.example.gm2.MyActivity.onCreate(MyActivity.java:16) at android.app.Activity.performCreate(Activity.java:5104) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) at android.app.ActivityThread.access$600(ActivityThread.java:141) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5039) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) at dalvik.system.NativeStart.main(Native Method) 

Después de eso, cambié el diseño a:

   

y cambió MyActivity a

  super.onCreate(savedInstanceState); setContentView(R.layout.main); FragmentManager manager = getFragmentManager(); FragmentTransaction transaction = manager.beginTransaction(); transaction.add(R.id.map, MapFragment.newInstance()); transaction.commit(); 

Como resultado, la aplicación se inició, pero no vi el mapa.

Registro de consola:

 ERROR/Google Maps Android API(10369): Authorization failure. 

Pasos :

  • para asegurarse de que el dispositivo tenga los servicios Google Play APK
  • para instalar el servicio de Google Play rev. Más de 2

enter image description here

  • para crear un proyecto en https://code.google.com/apis/console/
  • para habilitar “Google Maps Android API v2” enter image description here
  • para registrar SHA1 en el proyecto ( AHORA, NECESITA ESCRIBIR SHA1; your.app.package.name ) en la consola de la API y obtener la clave API
  • para copiar el directorio ANDROID_SDK_DIR / extras / google / google_play_services / libproject / google-play-services_lib a la raíz de su proyecto
  • para agregar la siguiente línea al YOUR_PROJECT / project.properties

android.library.reference.1=google-play-services_lib

  • para agregar las siguientes líneas al YOUR_PROJECT/proguard-project.txt

.

 -keep class * extends java.util.ListResourceBundle { protected Object[][] getContents(); } 

Ahora está listo para crear su propia aplicación Google Map con el uso de Google Map APIs V2 para Android.

Si crea una aplicación con mínimo SDK = 8, utilice la biblioteca de soporte android v4 + SupportMapFragment en lugar de MapFragment.

También verifique esta publicación: Google Map Código de ejemplo Android Api V2 no funciona , si está completamente seguro de haber hecho los pasos correctos, luego siga la segunda respuesta, la autenticación se almacena en caché en algún lugar, intente desinstalar la aplicación manualmente (tal como lo hace con un aplicación normal) luego “Ejecutar” nuevamente el proyecto

Como perdí mucho tiempo trabajando en la API, intentaré dar una validación paso a paso para Map API v2:

Paso 1: solicita tu clave de API

Si no está familiarizado con la consola API de Google, lea la muy buena respuesta de Rusfearuth anterior.

Paso 2: Comprueba tu SHA Hash (en este caso utilizo la clave de depuración de eclipse):

En una máquina con Windows llegó a su directorio de usuario en un símbolo del sistema:

 C:\Users\you>keytool -list -alias androiddebugkey -keystore .android\debug.keyst ore -storepass android -keypass android 

Obtendrás algo como:

 androiddebugkey, 15.10.2012, PrivateKeyEntry, Zertifikat-Fingerprint (SHA1): 66:XX:47:XX:1E:XX:FE:XX:DE:XX:EF:XX:98:XX:83:XX:9A:XX:23:A6 

Luego mira el nombre de tu paquete de la actividad del mapa, por ejemplo, com.example.mypackagename

Usted combina esto y lo verifica con su configuración en la consola API de Google:

 66:XX:47:XX:1E:XX:FE:XX:DE:XX:EF:XX:98:XX:83:XX:9A:XX:23:A6;com.example.mypackagename 

donde obtienes tu clave API:

 AZzaSyDhkhNotUseFullKey49ylKD2bw1HM 

Paso 3. Manifiesto metadatos

Compruebe si los metadatos están presentes y contienen la clave correcta. Si publica su aplicación, necesita una clave diferente.

    

Paso 4. Características de manifiesto:

Necesitas esta entrada ya que la API del mapa requiere soporte grapics:

  

No te preocupes, el 99.7% de los dispositivos lo admiten.

Paso 5. Biblioteca de manifiesto:

Agrega la biblioteca de google

   // This is required if you want your app to start in the emulator. I set it to false also if map is not an essential part of the application. 

Paso 6. Permisos de manifiesto:

Compruebe el nombre del paquete dos veces: com.example.yourpackage

   

Agregue los siguientes permisos:

    

Los siguientes permisos son opcionales y no obligatorios si solo muestra un mapa. Intenta no usarlos.

   

Paso 7. Incluye el fragmento del mapa en tu diseño:

  

Si su lanzamiento a las versiones de Android 2.x necesita agregar soporte en su actividad:

 import android.support.v4.app.FragmentActivity; 

Para el mapa: las entradas para trabajar incluyen

 xmlns:map="http://schemas.android.com/apk/res-auto" 

en el diseño de su actividad (por ejemplo, LinearLayout).

En mi caso, tengo que limpiar el proyecto cada vez que cambio algo en el diseño. Parece ser un error.

Paso 8: Utiliza Eclipse – Proyecto – Limpiar.

¡Disfrutar!

Necesita utilizar el proyecto de biblioteca ubicado en: ANDROID-SDK-DIRECTORY / extras / google / google_play_services / libproject

Esto arreglará tu primer problema.

No estoy seguro acerca de su segundo, pero puede ser un efecto secundario del primero. Todavía estoy intentando que el mapa funcione en mi propia aplicación 🙂

Hoy me enfrenté con este problema. Utilicé Android Studio 2.1.3, Windows 10. Al depurar, funciona bien, pero si actualizo a modo de lanzamiento, no funciona. Borré todas las condiciones de defensa, actualizadas, pero esta no fue la solución.

La solución está relacionada con la estructura del proyecto. El archivo google_maps_api.xml era diferente entre la aplicación \ src \ debug \ res y la aplicación \ src \ release \ res. Hice copiar manualmente pegar de la depuración a la carpeta de lanzamiento.

Ahora funciona.

Resolví este error al verificar el nombre del paquete en manifest y en la aplicación build.gradle .

En manifiesto:

Estoy usando un nombre de paquete como:

 com.app.triapp 

En la aplicación build.gradle:

  defaultConfig { applicationId "com.app.live" } 

Después de cambiar a com.app.triapp en build.gradle , resolví mi problema.

Estoy migrando de V1 a V2 de Google Maps. Estaba obteniendo este error al intentar ejecutar la aplicación a través de Eclipse. La causa principal para mí fue usar el almacén de claves de mi certificado de liberación en lugar del almacén de claves de depuración de Android, que es lo que se usa cuando lo ejecutas a través de Eclipse. El siguiente comando (OSX / Linux) le proporcionará la clave SHA1 del almacén de claves de depuración:

 keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android 

Si está utilizando Windows 7 en su lugar, usaría este comando:

 keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android 

Probablemente sea mejor desinstalar completamente tu aplicación de tu dispositivo antes de intentar con una nueva clave, ya que Android almacena en caché las credenciales de seguridad.

Simplemente agregue esto en su archivo de manifiesto:

 **** 

Por ejemplo…

         

Y actualice su lib de servicio de google play … Vaya a Ventana -> Administrador de SDK de Android -> actualice el servicio de google play … lo instaló … elimine el anterior y conserve este. Toma esto de ANDROID-SDK-DIRECTORY / extras / google / google_play_services /

Gracias … Vote por favor

Seguí la mayoría, si no todas, las sugerencias de Gunnar Bernstein mencionadas anteriormente y aún así no funcionó. Sin embargo, comenzó a funcionar después de que seguí sus sugerencias Y lo siguiente:

  1. Creé una nueva MapActivity usando la lista de opciones del botón derecho de Android Studio: Nueva -> Google -> Actividad de Google Maps

  2. Luego abrí el archivo google_maps_api.xml que se genera automáticamente y usé el enlace indicado para crear una nueva API KEY. Hice todos los pasos y guardé mi nueva clave en mi proyecto actual. Luego eliminé mi antigua API API registrada, ya que ya no era necesaria.

  3. Debajo del archivo Manifest reemplacé el antiguo valor de API KEY con el atajo de cadena creado por este nuevo archivo XML: android:value="@string/google_maps_key “, en lugar de indicar la clave directamente.

  4. Finalmente, elimine la nueva MapActivity, pero conserve el archivo xml que se creó en ese proceso.

Nota: Al crear la API KEY de esta manera, la columna Restricciones, bajo Credenciales, ahora indica “Aplicaciones de Android”. Anteriormente, cuando no funcionaba, la columna decía “Aplicaciones de Android, 1 API” o algo similar. No sé si esto hace la diferencia o no.

Nota: se parece a la etiqueta de metadatos del archivo Manifiesto:

 android:name="com.google.android.maps.v2.API_KEY 

ha sido reemplazado por:

 android:name="com.google.android.geo.API_KEY" 

Supongo que ambos pueden usarse, pero es mejor desde el principio usar el último.

Nota: El valor indicado, en el archivo build.gradle, en android -> defaultConfig -> applicationId tiene que coincidir con el texto del nombre del paquete en la página Credenciales.

“java.lang.NoClassDefFoundError: com.google.android.gms.R $ styleable”

A también tuvo este error, necesita: Archivo -> importar -> Código de Android existente en el espacio de trabajo -> Examinar -> SDK de Android -> extras -> google -> servicios_aplicación_google -> proyecto_libro -> google_play_services_lib y OK. Verifica el proyecto y termina.

El proyecto va a Package Explorer. Ahora ve a tu proyecto (con error) -> propiedades -> Android y en Biblioteca, haz clic en Agregar … ¡google_play_services_lib debería estar allí! agregar e intentar nuevamente 🙂

Tuve el mismo problema, pero resultó que fue porque creé dos claves API de mapa diferentes con la misma huella digital SHA-1 con el nombre de paquete casi similar com.bla.bla y el otro com.bla.bla.something .

Tenía exactamente el mismo problema y solo necesitaba configurar el SDK para el proyecto de biblioteca de MapsApiV2 a Android 2.3.3 (API lvl 10)

Tuve el mismo problema. Después de aproximadamente dos horas de búsqueda de Google, rebashs, regeneración de clave de API muchas veces, etc. descubrí que habilité el servicio incorrecto en la consola de Google APis. He habilitado el servicio Google Maps API v2 , pero para las aplicaciones Android debes usar Google Maps Android API v2 . Después de habilitar el servicio correcto, todo comenzó a funcionar.

SU ECLIPSE PUEDE CAMBIAR SHA1 KEY, por lo que debe volver a generar su clave de Google con la nueva clave SHA1 aquí: https://console.developers.google.com/project/watchful-net-796/apiui/credential Después de eso, copie la nueva clave en manifiesto y vuelva a cargar esta página de google algunas veces, y su clave se actualizará, reconstruya su proyecto, funcionará. P / S: para mi error, eliminé la carpeta .android para eclipse regen SHA1.

Seguí el mismo paso provisto en el documento de Google Docs, pero recibía el mismo error. Más tarde me di cuenta de que estaba firmando mi aplicación con mi app.keystore y que la clave SHA que estaba usando para generar la clave API era la de depuración.

Así que simplemente signingConfig signingConfig.generic el signingConfig signingConfig.generic del archivo build.gradle y mi mapa comenzó a funcionar bien.

Espero que esto ayude a alguien.

Enfrenté el mismo problema.

Si emitió una API para su versión de lanzamiento de la aplicación. Entonces, esa API solo funcionará para la versión de lanzamiento, no para la versión de depuración. Así que asegúrese de estar utilizando la versión de lanzamiento en su teléfono o emulador.