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
- ¿Cómo puedo utilizar Picasso para agregar icono a Marcador?
- Hacer que el marcador se pueda arrastrar tras un solo clic en Android
- Agregar Google Maps API V2 en un fragmento
- Android, ¿Cómo eliminar todos los marcadores de Google Map V2?
- Android: Uso de StreetViewPanoramaView en XML
Compruebo que ya encienda el mapa de google android v2 y el derecho API_KEY
¡No tengo idea de que pasó!
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!
- La adición de nuevos marcadores en el mapa utilizando el gestor de clúster no refleja los cambios hasta que haga zoom y aleje el mapa
- Cómo obtener la latitud y la longitud en el mapa en Android?
- RxAndroid debounce google maps en el cambio de cámara
- Google maps api no coloca el marcador en la ubicación correcta
- Cómo cambiar la Barra de Acción al tocar el mapa como Uber
- Deslizando la imagen con la Official Support Library 23.x. + bottomSheet como google maps
- Comportamiento extraño de una actividad en diferentes versiones de Android: el mapa parpadea
- Google api console eliminó mis aplicaciones registradas
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:
- Ir a la consola: https://code.google.com/apis/console/
- Ir a la sección de servicios
- Habilitar la API de Google Maps para Android v2
- 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:
-
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
-
Vaya a https://console.developers.google.com y agregue el paquete sha1 +.
-
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" />
-
Borrar los datos de la aplicación si ha realizado algunos cambios en el manifiesto.
-
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.
- Implementación de funciones USSD. Vincular un servicio a PhoneUtils sin reiniciar el teléfono en cada actualización
- Modificación de la salida de la cámara con SurfaceTexture y OpenGL