Los mapas de Google de repente no funcionan
De repente todos los mapas dejado de funcionar en mi aplicación y sólo muestra una pantalla en blanco con el logotipo de google en la esquina inferior izquierda.
El error que obtengo es:
- ¿Consigue Google Maps para ampliar automáticamente la ubicación actual?
- Cómo establecer la etiqueta en el marcador de Google Map en Android?
- Google Maps API v2: ¿Cómo hacer que los marcadores se puedan hacer clic?
- GetSupportFragmentManager (). FindFragmentById (R.id.map) comenzó a devolver null
- Google Map V2 Android y iOS colocan decimales latlng
I/Google Maps Android API﹕ Google Play services package version: 4452038 I/ActivityManager﹕ Start proc com.google.android.gms.maps for service com.google.android.gms/.maps.auth.ApiTokenService: I/Google Maps Android API﹕ Google Play services client version: 4452000 I/Google Maps Android API﹕ Failed to contact Google servers. Another attempt will be made when connectivity is established. E/Google Maps Android API﹕ Failed to load map. Error contacting Google servers. This is probably an authentication issue (but could be due to network errors).
Lo único que creo que es posible es un error de autenticación. Desde que he probado en diferentes redes y no tienen problemas allí.
¿Podría ser el problema con el archivo build.gradle? Porque los problemas comenzaron después de que me ensucie alrededor allí, pienso.
Este es mi gradle de construcción:
apply plugin: 'android' android { compileSdkVersion 19 buildToolsVersion "19.0.3" def versionPropsFile = file('version.properties') if (versionPropsFile.canRead()) { def Properties versionProps = new Properties() versionProps.load(new FileInputStream(versionPropsFile)) def value = 0 def runTasks = gradle.startParameter.taskNames if ('assemble' in runTasks || 'assembleRelease' in runTasks || 'aR' in runTasks) { value = 1; } def versionMajor = 1 def versionMinor = 3 def versionPatch = versionProps['VERSION_PATCH'].toInteger() + value def versionBuild = versionProps['VERSION_BUILD'].toInteger() + 1 def version_Code = versionProps['VERSION_CODE'].toInteger() + value versionProps['VERSION_PATCH'] = versionPatch.toString() versionProps['VERSION_BUILD'] = versionBuild.toString() versionProps['VERSION_CODE'] = version_Code.toString() versionProps.store(versionPropsFile.newWriter(), null) defaultConfig { versionCode version_Code versionName "${versionMajor}.${versionMinor}.${versionPatch} (${versionBuild})" minSdkVersion 14 targetSdkVersion 19 } } else { throw new GradleException("Could not read version.properties!") } signingConfigs { debug { storeFile file("xxx.keystore") storePassword "xxxx" keyAlias "debug" keyPassword "xxxx" } releaseKey { storeFile file("xxx.keystore") storePassword "xxxx" keyAlias "release" keyPassword "xxxx" } } buildTypes { debug { debuggable true packageNameSuffix ".debug" proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' signingConfig signingConfigs.debug } release { proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' signingConfig signingConfigs.releaseKey } } lintOptions { abortOnError false } } dependencies { compile project(':nineOldAndroids') compile project(':expListViewLib') compile project(':datetimepickerlibrary') compile project(':volley') compile 'com.android.support:support-v4:+' compile 'com.google.android.gms:play-services:+' compile files('libs/aws-android-sdk-1.7.1.1.jar') compile files('libs/disklrucache-2.0.1.jar') }
El manifiesto se parece a lo siguiente:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.app" > <permission android:name="com.example.app.permission.MAPS_RECEIVE" android:protectionLevel="signature" /> <uses-feature android:glEsVersion="0x00020000" android:required="true" /> <uses-permission android:name="com.example.app.permission.MAPS_RECEIVE" /> <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" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.VIBRATE" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > ... <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="@string/config_com.google.android.maps.v2.api_key" /> </application> </manifest>
He comprobado varias veces que packageName, sha1 huella dactilar y la API es correcta. Todos lo son, pero sigo recibiendo un mapa vacío.
He visto preguntas similares por ahí, pero ninguna de las soluciones que encontré. Sólo se niega a trabajar para mí.
¿Alguna sugerencia?
EDIT: Nada de lo que he probado funciona. Pero encontré una pregunta similar con alguien que parece tener el mismo problema: Google Maps Android API Error en la autorización: ¿ha cambiado este servicio en los últimos meses?
- ¿Puedo tener una sola clave de API de Google Maps para todas mis aplicaciones sin registrar sus nombres de paquete?
- La superposición de información de tráfico se muestra siempre encima de otras polilíneas en el mapa de google en android
- Múltiples marcadores con texto en Google Maps API v2
- Obtener la ubicación seleccionada de la actividad de Google Maps
- Las API de Google lanzan error de no-crunch para android
- Servicio de Google para Android Recogedor de lugares setLatLngBounds () no funciona
- Android Google Maps V2 cambiar Mi ubicación Icono
- Android setOnMarkerClickListener establecer título para cada marcador
Tuve exactamente el mismo problema y la solución no era obvio en absoluto. Compruebe si no está cambiando DefaultSSLSocketFactory con:
HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());
Eliminar esta línea y configurar la fábrica de socket sólo para la conexión requerida hizo que mis mapas funcionaran.
- Cómo descargar las acciones del componente de la interfaz de usuario de Android y sus datos para ayudar a resolver los errores difíciles de reproducir
- Iniciar la cámara nativa sin mostrar el selector