Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Error en la autorización de Google Maps para Android API v2

Mis pasos:

Después de la compilación tengo un accidente:

  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 he cambiado el diseño a:

 <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/map" android:layout_width="match_parent" android:layout_height="match_parent" /> 

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. 

  • Android Google Maps - fondo personalizado detrás de todos los marcadores
  • Valores válidos para android: fontFamily y para qué se correlacionan?
  • ¿Cómo eliminar la aplicación de ejemplo del emulador de Android?
  • ¿Cómo mostrar Snackbar cuando se inicia la actividad?
  • Error keytool: java.io.IoException: formato AVA incorrecto
  • ¿Dónde puedo crear y usar ScheduledThreadPoolExecutor, TimerTask o Handler?
  • 15 Solutions collect form web for “Error en la autorización de Google Maps para Android API v2”

    Pasos :

    • Para garantizar que el dispositivo tenga servicios de Google Play APK
    • Instalar Google Play Service rev. Más de 2

    Introduzca aquí la descripción de la imagen

    • Para crear un proyecto en https://code.google.com/apis/console/.
    • Para habilitar "Google Maps Android API v2" Introduzca aquí la descripción de la imagen
    • Para registrar SHA1 en el proyecto ( AHORA, USTED NECESITA ESCRIBIR SHA1; your.app.package.name ) en la consola APIs y obtener API KEY
    • 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 proyecto YOUR_PROJECT / project.properties

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

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

    .

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

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

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

    Si no estás seguro de que has hecho los pasos correctos y luego sigues la segunda respuesta, la autenticación se pone en caché en algún lugar, intenta desinstalar la aplicación manualmente (como lo haces con un Aplicación normal), luego ejecutar de nuevo el proyecto

    Como acabo de perder mucho tiempo para que la API funcione, intentaré dar una validación paso a paso para la API de Map v2:

    Paso 1: Solicitar la clave de la API

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

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

    En una máquina 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á 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 

    A continuación, observe el nombre del paquete de la actividad del mapa, por ejemplo, com.example.mypackagename

    Combinas esto y comprueba que con tu configuración en la consola de la 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 obtiene su clave de API:

     AZzaSyDhkhNotUseFullKey49ylKD2bw1HM 

    Paso 3. Metadatos de manifiesto

    Compruebe si los metadatos están presentes y contienen la clave derecha. Si liberas tu aplicación, necesitas una clave diferente.

      <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="AZzaSyDhkhNotUseFullKey49ylKD2bw1HM" /> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> 

    Paso 4. Características del manifiesto:

    Necesita esta entrada como la API del mapa requiere algún apoyo grapics:

     <uses-feature android:glEsVersion="0x00020000" android:required="true" /> 

    No te preocupes, el 99,7% de los dispositivos soportan esto.

    Paso 5. Biblioteca de manifiesto:

    Añade la biblioteca de google.

      <uses-library android:name="com.google.android.maps" android:required="false" /> // 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

     <permission android:name="com.example.yourpackage.permission.MAPS_RECEIVE" android:protectionLevel="signature" /> <uses-permission android:name="com.example.yourpackage.permission.MAPS_RECEIVE" /> 

    Agregue los siguientes permisos:

     <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> 

    Los siguientes permisos son opcionales y no son necesarios si solo muestra un mapa. Trate de no usarlos.

     <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 

    Paso 7. Incluya el fragmento del mapa en su diseño:

     <fragment android:id="@+id/map" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" class="com.google.android.gms.maps.SupportMapFragment" map:cameraTargetLat="47.621120" map:cameraTargetLng="-122.349594" map:cameraZoom="15" /> 

    Si su lanzamiento a las versiones 2.x de Android 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 su distribución de actividades (por ejemplo, LinearLayout).

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

    Paso 8: Utilizar Eclipse – Proyecto – Limpiar.

    ¡Disfrutar!

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

    Esto solucionará su primer problema.

    No estoy seguro acerca de su segundo, pero puede ser un efecto secundario de la primera. Todavía estoy tratando de obtener el mapa de trabajo en mi propia aplicación 🙂

    Hoy me he enfrentado a este problema. He utilizado Android Studio 2.1.3, Windows 10. Mientras que la depuración funciona bien, pero si actualizar a modo de lanzamiento no funciona. Limpié todas las condiciones proguard, actualizado, pero esto no era solución.

    La solución está relacionada con la estructura del proyecto. El archivo google_maps_api.xml era diferente entre app \ src \ debug \ res y app \ src \ release \ res. Hice la copia manual de la copia de la depuración para liberar la carpeta.

    Ahora funciona.

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

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

    Si utiliza Windows 7 en su lugar, debería utilizar 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.

    Solucioné este error comprobando el nombre del paquete en manifesto y app build.gradle .

    En manifiesto:

    Estoy usando un nombre de paquete como:

     com.app.triapp 

    En app build.gradle:

      defaultConfig { applicationId "com.app.live" } 

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

    "Java.lang.NoClassDefFoundError: com.google.android.gms.R $ styleable"

    A tenía este error también, necesitas: Archivo -> importación -> Código existente de Android en el área de trabajo -> Navegar -> Android sdks -> extras -> google -> google_play_services -> lib_project -> google_play_services_lib y OK. Compruebe el proyecto y Finalizar.

    El proyecto va al Explorador de paquetes. Ahora vaya a su proyecto (con error) -> propiedades -> Android y en la biblioteca haga clic en Añadir … el google_play_services_lib debe estar allí! Agregar y probar de nuevo 🙂

    Sólo tiene que añadir esto en su archivo de manifiesto:

     **<uses-library android:name="com.google.android.maps" />** 

    Por ejemplo…

     <application android:icon="@drawable/icon" android:label="@string/app_name" > <uses-library android:name="com.google.android.maps" /> <activity android:name=".California" android:label="@string/app_name" android:screenOrientation="portrait" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> 

    Y por favor actualice su lib de servicio de Google Play … Vaya a la ventana -> Android sdk manager-> actualizar servicio de google play … instalado it .. borrar uno antiguo y mantener este. Tome esto de ANDROID-SDK-DIRECTORY / extras / google / google_play_services /

    Gracias..Por favor, vote arriba

    Tuve el mismo problema, pero resultó que fue porque creé dos diferentes API de mapa llaves 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 sólo necesitaba establecer el SDK para el proyecto de la biblioteca de MapsApiV2 a Android 2.3.3 (API lvl 10)

    Tuve el mismo problema. Después de aproximadamente dos horas de google, intentos, regeneración de la clave del API muchas veces, etc. descubrí que habilité el servicio equivocado en la consola APIS de Google. He habilitado el servicio Google Maps API v2 , pero para aplicaciones Android tienes que usar la API de Google Maps para Android v2 . Después de habilitar el servicio correcto, todo empezó a funcionar.

    SU ECLIPSE PUEDE CAMBIAR LA TECLA SHA1, por lo que debe regenar 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 manifestar y recargar esta página de google algunas veces, y su clave se actualizará, reconstruir su proyecto, que funcionará. P / S: Para mi error, he eliminado la carpeta .android para eclipse regen SHA1.

    Seguí el mismo paso proporcionado en el Documento de Google, pero estaba recibiendo el mismo error. Más tarde me di cuenta de que estaba firmando mi aplicación con mi app.keystore y la clave SHA que estaba usando para generar la clave de la API fue la depuración.

    Tan simplemente quité el signingConfig signingConfig.generic de por el archivo de build.gradle y mi mapa comenzó a trabajar muy bien.

    Espero que esto ayude a alguien.

    Me enfrenté a la misma cuestión.

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

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.