Error al cargar el mapa. Error al contactar a los servidores de Google. Esto es probablemente un problema de autenticación

Busco todos los días y no puedo encontrar la respuesta …

Todo está listo, pero google map todavía no se puede mostrar en el fragmento con la pestaña

Compruebo que ya encienda el mapa de google android v2 y el derecho API_KEY

¡No tengo idea de que pasó!

Img

MainActivity.java:

public class MainActivity extends FragmentActivity implements ActionBar.TabListener { SectionsPagerAdapter mSectionsPagerAdapter; ViewPager mViewPager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); String titles[] = { this.getString(R.string.title_around), this.getString(R.string.title_map), this.getString(R.string.title_favorite), this.getString(R.string.title_achievement), }; final ActionBar actionBar = getActionBar(); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); mSectionsPagerAdapter = new SectionsPagerAdapter( getSupportFragmentManager()); mViewPager = (ViewPager) findViewById(R.id.pager); mViewPager.setAdapter(mSectionsPagerAdapter); mViewPager .setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() { @Override public void onPageSelected(int position) { actionBar.setSelectedNavigationItem(position); } }); for (int i = 0; i < titles.length; i++) { actionBar.addTab(actionBar.newTab().setText(titles[i]) .setTabListener(this)); } } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public void onTabSelected(Tab tab, FragmentTransaction fragmentTransaction) { mViewPager.setCurrentItem(tab.getPosition()); } @Override public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) { } @Override public void onTabReselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) { } public class SectionsPagerAdapter extends FragmentPagerAdapter { public SectionsPagerAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { // TODO 在這邊決定哪個位置要給什麼 View(Fragment) Fragment fragment = null; // TODO 建議先在之前就初始化好 4 個 Fragment switch (position) { case 0: fragment = new AroundFragment(); break; case 1: fragment = new MapsFragment(); break; case 2: fragment = new FavoriteFragment(); break; case 3: fragment = new AchievementFragment(); break; default: break; } return fragment; } @Override public int getCount() { return 4; } @Override public CharSequence getPageTitle(int position) { // TODO 在這邊決定每一個 View 的 title switch (position) { case 0: return getString(R.string.title_around); case 1: return getString(R.string.title_map); case 2: return getString(R.string.title_favorite); case 3: return getString(R.string.title_achievement); } return null; } } } 

MapsFragment.java:

 public class MapsFragment extends Fragment{ static final LatLng NKUT = new LatLng(23.979548, 120.696745); private GoogleMap map; SupportMapFragment mMapFragment; public MapsFragment() { } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.map_fragment,container, false); map = ((SupportMapFragment)getFragmentManager().findFragmentById(R.id.map)).getMap(); mMapFragment = SupportMapFragment.newInstance(); FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction(); fragmentTransaction.add(R.id.map,mMapFragment); fragmentTransaction.commit(); return rootView; } } 

Map_fragment.xml

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

Manifest.xml:

 <!-- Google Map --> <permission android:name="com.jertt.yummymap.permission.MAPS_RECEIVE" android:protectionLevel="signature"/> <uses-permission android:name="com.jertt.yummymap.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"/> <!-- The following two permissions are not required to use Google Maps Android API v2, but are recommended. --> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <!-- end --> <!-- Google Map API Key --> <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="key" /> <!-- end --> 

Solución:

¡Encontré la solución !!!

Si utiliza el almacén de claves privado para aplicar API_KEY. No se puede cargar e instalar la aplicación con eclipse.

¡Necesitas subir el archivo .apk a tu dispositivo por ti mismo e instalarlo!

Gracias Tarsem y srikanth gr ayuda!

Parece que tienes un problema con tu API_KEY que se obtiene de Google API Access , así que comprueba tu API_KEY , las huellas dactilares del certificado y el nombre del paquete

También usar esto dentro <manifest>

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

Y también verificar: <meta-data .... > debe estar dentro de la etiqueta <application>


PD.

1. También intente agregar el siguiente permiso

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

2. After changing API key en AndroidManifest.xml Debe Clear Application Data

Para borrar los datos de la aplicación:

Vaya a Settings>Application Manager>Select Your Application > Click on Clear Data

O Must Uninstall The Application antes de installing it ! Nota No Re-install menos que Completely Uninstall the Application para clear its Data completely

He pasado tanto tiempo, hay demasiadas preguntas similares.

Intenté agregar permiso propio, permiso de WIFI_STATE, pero el problema verdadero estaba en datos de la aplicación.

Después de cambiar la clave API en manifiesto, DEBE "Borrar datos" de su aplicación (o reinstalar completamente).

Esto me ayuda y espero que este post ayudará a alguien.

Mi problema se resolvió agregando permiso al manifiesto:

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

Tengo el mismo problema, y ​​mi problema era que no activé el servicio en la consola:

  1. Ir a la consola: https://code.google.com/apis/console/
  2. Ir a la sección de servicios
  3. Habilitar la API de Google Maps para Android v2
  4. Siga todos los pasos de la documentación

Si tiene un problema con auth, compruebe en Logcat el nombre del paquete. Si utilizas Android Studio echa un vistazo a tu build.gradle . Cuando file contiene applicationIdSuffix '.dev' . Debe agregar .dev al nombre de su paquete.

Ei nombre del paquete es:

Com.company.main

En la consola de API escriba

… 9S.ME.DA.FE; com.company.main.dev

Después de hacer todo lo que la gente dijo que le gusta comprobar mi manifiesto, agregar permisos, hacer una nueva clave con el sha1 en eclipse, etc y todavía no funciona Acabo de hacer:

 adb uninstall com.example.hellomap 

Y luego ejecutar a través de eclipse de nuevo. Parecía que el dispositivo no estaba recibiendo datos completamente nuevos. Espero que esto ayude.

Pude usar la clave de depuración y la carga de eclipse. Me faltaba el siguiente permiso en mi AndroidManifest.xml

 uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" 

Después de revisar una gran cantidad de casos y ejecutar con éxito los mapas, estas cosas son importantes tener en cuenta:

  • Utilice el api 17 de Android, emulador de cabina y proyecto
  • Hacer referencia a los servicios de google
  • Utilice el soporte de Android si es necesario
  • Utilice el siguiente orden en las bibliotecas: src, gen, google apis, android, dependencias y bibliotecas privadas
  • Utilice una clave api correcta
  • Borrar datos, volver a instalar la aplicación.

Había configurado muchos servicios incluyendo Google Maps API v2 (no Google Maps Android API v2) que era conflictivo. Después de eliminar el servicio no deseado y generar una nueva clave, incluso en el manifiesto, limpie la instalación, el mapa apareció en el dispositivo.

He arreglado el problema dando el permiso en el manifiesto

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

Yo estaba enfrentando el mismo problema en Android Studio. Los mapas de Google no aparecerían cuando estuvieran conectados al depurador de Android.

Lo solucioné agregando la huella digital SHA1 para depurar el almacén de claves ubicado en ~/.android/debug.keystore . Creo que este almacén de claves se genera por defecto (aunque no estoy seguro).

El siguiente comando en Terminal funcionó para obtener la huella SHA1:

 keytool -list -v -keystore ~/.android/debug.keystore 

Cuando solicite contraseña, no teclee nada, simplemente presione enter. (Trabajó en mi caso)

Agregue esta huella dactilar a su clave de API para aplicaciones de Android en la consola de desarrolladores.

¡Aclamaciones!

En mi caso lo que funcionó es que tuve que instalarlo a través de la línea de comandos:

Adb install /path/to/app/MyApp.apk

Todo lo que tienes que hacer es: utilizar la clave de depuración en tu código; Desinstale la aplicación; Instale la nueva aplicación con la clave de depuración.

En caso, si nada (arriba indicado) funciona, hay una buena posibilidad de que esté utilizando un archivo debug.keystore incorrecto para generar huellas dactilares. Si tiene varios archivos debug.keystore en su máquina, asegúrese de que está utilizando el debug.keystore correcto para generar la huella digital SHA1.

Muchos de ellos me ayudaron, pero el principal problema fue que no tenía la firma correcta. Estoy usando Xamarin y por lo tanto no está incorporado en el IDE, por lo que cuando generaría la clave con keytool, nunca entraría en la aplicación. Tuve que agregar lo siguiente en mi archivo .csproj:

 <PropertyGroup> <AndroidKeyStore>True</AndroidKeyStore> <AndroidSigningKeyStore>maps.keystore</AndroidSigningKeyStore> <AndroidSigningStorePass>android</AndroidSigningStorePass> <AndroidSigningKeyAlias>androiddebugkey</AndroidSigningKeyAlias> <AndroidSigningKeyPass>android</AndroidSigningKeyPass> </PropertyGroup> 

El error para mí fue que estaba ejecutando la configuración de depuración cuando acabo de agregar la configuración de lanzamiento a Google Developers Console. Por lo tanto, seguí estos pasos:

  1. Obtenga el sha1 para su almacén de claves de depuración mediante:

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

  2. Vaya a https://console.developers.google.com y agregue el paquete sha1 +.

  3. Agregue su API_KEY al archivo AndroidManifest.xml.

En IntelliJ ..si está seguro de que la clave SHA1 es correcta, la API key no falta,

Permission y cualquier configuración en Manifest es correcta.

Tal vez usted tiene que hacer clic derecho en su Google Play Services-lib y Compilar de nuevo

He hecho todas las cosas y esto hace el truco para mí.

Mi error más extraño que he hecho hasta ahora fue obtener código SHA1 de debug.keystore.

Aunque no tiene contraseña, pero la contraseña era android

No estoy seguro si ayuda a alguien, pero me ayudó. Además, utilice un nombre de paquete completo, puede encontrarlo en el archivo de código fuente de java. Por ejemplo, existe el mío: com.example.erikas.mapsdemo (se parece a: package com.example.erikas.mapsdemo;)

Por lo tanto, cuando intenta obtener una clave de API, utilice la entrada de esta manera:

 XX:XX:XX:XX:XX:17:C9:22:BB:BD:7C:87:12:83:2D:XX:XX:XX:XX:XX;com.example.erikas.mapsdemo 

Así que mi propio error fue un código incorrecto SHA1 y paquete equivocado. Pero fortunatelly – me imaginé que después de 2 días de dolor de cabeza! :RE

Al depurar, necesitaba agregar una clave API adicional para el ~/.android/debug.keystore

Este keystore se configura automáticamente para usted y la contraseña es "android"?

Me enfrenté al mismo problema, Tengo solución para esto, he intentado crear la clave api de depuración de diferentes cuenta de google con el mismo nombre de paquete. Paso para borrar el error: 1.Remove la clave no deseada api con el mismo nombre de paquete en la cuenta de google diferente. 2. Mantenga por favor la generación dominante de Api en solo cuenta para solucionar este problema. Gracias. Prueba esto.

Yo estaba atascado en esta cuestión durante una semana. Así que empecé a usar dispositivos reales. Pero un día intento configurar Custon debug keystore (Eclipse, Window -> Preferences -> Android -> Build -> Cusom debug keystore) al mismo valor que el predeterminado. Y todos se volvieron a trabajar. Por supuesto, primero tengo una clave en una consola de google.

Espero que esto ayude!

Yo estaba enfrentando el mismo problema. He intentado varias soluciones – ninguna funcionó para mí. Lo que funcionó para mí fue generar una nueva clave de API y CLEARING los DATOS del servicio de reproducción de Google en mi dispositivo.

Lista de comprobación: 1. Busque permiso en el manifiesto de Android para READ_GSERVICES

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

  1. Borrar los datos de la aplicación si ha realizado algunos cambios en el manifiesto.

  2. Compruebe debug.keystore en la carpeta .android.

    Mi Problema se resolvió reemplazando debug.keystore ubicado en la carpeta .android por debug.keystore de tu aplicación.

También me enfrenté al mismo problema, mientras uso Android Studio .

He referido todas las soluciones, pero todavía no estaba funcionando.

El problema es que he changed mi package name después de la configuración inicial del proyecto. Cambiar el nombre del paquete se reflejó en Manifest , pero en el archivo build.gradle el nombre del paquete antiguo estaba allí.

Tan pronto como, he changed package name en build.gradle, Map comienza a trabajar.

Espero que ayude a alguien.

Yo tuve el mismo problema. Comprobé los registros y se dijo "La autenticación falló en el servidor". Por lo tanto, he comprobado http://www.console.developers.google.com y descubrí que el nombre del paquete era incorrecto. (Este nombre del paquete fue escrito automáticamente) Lo escribí correctamente y todo funciona bien.

  • Cómo buscar en Google Map Api V2 Android?
  • Google map se estrella en pocos dispositivos
  • Abrir URL desde Marcador, Android Google Maps V2
  • ¿Es posible obtener sugerencias de rutas desde google maps en la aplicación android2.2?
  • Procesamiento de fragmentos Google Map V2 de Google Studio
  • Implementación de un mapa interior
  • Dibujo (filtrado) 100k + puntos a MapView en Android
  • Cómo mover iconos en un MapView de Android
  • No entiende el método drawAt () para com.google.android.maps.Overlay
  • Creación de OnDragListener para Google Map v2 Fragment
  • Cómo borrar todos los marcadores en v2 google map?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.