programacion - mapas en android studio
En la versión 2, la vista de mapa no muestra el mapa (18)
La actividad del mapa no muestra el mapa, aparece como una pantalla blanca con botones de control de zoom. Archivo de manifiesto como este:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.demomap"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<permission
android:name="com.example.demomap.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission android:name="com.example.demomap.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" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.demomap.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyCTQZOcXFS3RpNSVe79HHN1xojat-2MbT4" />
</application>
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
</manifest>
Mi archivo XmL como estos:
<?xml version="1.0" encoding="utf-8"?>
<fragment
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.SupportMapFragment" />
Log Cat Error:
05-15 17:15:16.255: E/Google Maps Android API(26201): Failed to load map. Error contacting Google servers. This is probably an authentication issue (but could be due to network errors).
Por favor, ayúdame.
Tengo este problema al usar MapView
fragment_map.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.gms.maps.MapView
android:id="@+id/mapview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
String message = getArguments().getString(EXTRA_MESSAGE);
v = inflater.inflate(R.layout.map_f, container, false);
vh = new ViewHolder();
assetHandler = new AssetHandler(getActivity());
vh.mapView=assetHandler.mapViewHandler.set(v,R.id.mapview);
vh.mapView.onCreate(savedInstanceState);
vh.mapView.getMapAsync(new OnMapReadyCallback() {
@Override
public void onMapReady(GoogleMap googleMap) {
googleMap.getUiSettings().setMyLocationButtonEnabled(true);
googleMap.setMyLocationEnabled(true);
// Needs to call MapsInitializer before doing any CameraUpdateFactory calls
try {
MapsInitializer.initialize(getActivity());
} catch (Exception e) {
e.printStackTrace();
}
}
});
return v;
}
@Override
public void onResume() {
super.onResume();
vh.mapView.onResume();
}
@Override
public void onPause() {
vh.mapView.onPause();
super.onPause();
}
@Override
public void onDestroy() {
vh.mapView.onDestroy();
super.onDestroy();
}
@Override
public void onLowMemory() {
super.onLowMemory();
vh.mapView.onLowMemory();
}
Noté que si los métodos de LifeCycle no están implementados, tampoco podrás ver el mapa. Espero que esto sea esperanzador para algunos.
Como se mencionó aquí, este problema generalmente se deriva del hecho de que no está haciendo referencia a la biblioteca de google-play-service
correctamente. Por favor, eche un vistazo a los primeros 3 pasos de la siguiente guía. No escribí integración de Google Maps en su aplicación y me aseguro de que está haciendo todos los pasos correctamente:
Hay dos tipos de apk firmado y sin firmar. Si tu apk está firmada, entonces quieres usar la clave de liberación. Si usas la clave de depuración y firmas un apk, no funcionará. así que use la tecla de liberación cuando exporte un apk y verifique en un dispositivo real. En esta documentación, https://developers.google.com/maps/documentation/android/start#the_google_maps_api_key ha proporcionado. Mostrar la huella digital del certificado de lanzamiento.
Mi sugerencia es que puedas usar MapFragment. Por lo que sé, casi todos los dispositivos se actualizan a 11 o más. MapFragment es compatible con 11 y superior. Inicie sesión en la consola google api nuevamente y verifique si su clave de aplicación está presente allí o no. Sé que ya lo has hecho. Pero revísalo de nuevo. Porque tengo un problema donde la clave de la API no se guarda. Tengo que crear un nuevo proyecto cada vez. Quizás también estés enfrentando el mismo problema.
Tuve el mismo problema que tú pero lo resolví cuando me di cuenta de que no había mencionado al crear una nueva aplicación el nombre del paquete en la clave API ///// que tienes que verificarlo en la consola API de Google.
must be the same package name at the console and the one in your eclipse.
espero que te ayude
¿Has activado Google Map Service en la consola API?
Tuve el mismo problema, así que seguí y creé una nueva clave en la consola API. Además, asegúrese de seguir las instrucciones para grabar su clave de liberación en la consola API: Mostrar la huella digital del certificado de lanzamiento
Funciona para mi ahora...
muchas veces el problema proviene de no agregar el soporte de servicios de google en los permisos en el manifiesto:
compruebe que este permiso está presente en su manifiesto:
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
Esto es lo que hice ... 1) Cambié el espacio de trabajo. 2) Desde el sitio web de Lance Nanek, http://permalink.gmane.org/gmane.comp.handhelds.android.devel/98066 , parece que, con la nueva función de biblioteca, no especifica los proyectos de Android de los que depende en la sección Ruta de compilación de Java de las Propiedades. Lo haces en la sección de Android de las Propiedades.
y así, vaya a las Propiedades del Proyecto de aplicación en la Ruta de compilación de Java -> pulse Proyectos - seleccione la biblioteca y elimínela. ¡¡¡Eso resolvió mi problema !!
Además de los elementos a verificar, mencionados anteriormente, había generado la clave SHA1 fuera del eclipse. Luego moví mi proyecto a eclipse (estaba intentando Android Studio) y eclipse generó automáticamente una nueva clave SHA1, así que tuve que generar una nueva API_KEY basada en eso.
Acabo de pasar un par de horas con este mismo error. Inicialmente no tenía la clave de API de depuración de claves configurada correctamente y mi dispositivo Android almacenaba en caché la clave de API incorrecta que estaba codificada en mi manifiesto. Finalmente, simplemente eliminé la aplicación del dispositivo, limpié el proyecto y esto eliminó la clave de API residual que estaba almacenada localmente en el dispositivo. Volví a ejecutar la aplicación y todo funcionó como un amuleto.
Buena suerte.
No pude hacer que funcionara hasta que agregué lo siguiente dentro de la etiqueta de aplicación de mi manifiesto:
<application>
...
<uses-library android:required="true" android:name="com.google.android.maps" />
...
</application>
¡Espero que esto ayude!
Acabo de pasar muchas horas en esto. Resulta que había un debug.keystore diferente en mi disco (busca alrededor para asegurarte de que estás usando el correcto). Además, si obtiene este error, deje la aplicación ejecutándose por un tiempo. Obtuve el error una vez más cuando agregué la aplicación SHA1 correcta en el acceso a la API de Google, y mientras estaba leyendo algunos documentos, de repente apareció el mapa. Probablemente tomó 1-2 minutos.
Cambié el nombre del paquete y actualicé la consola. Tenía todo correcto (la clave SHA1 correcta, el nombre del paquete y la clave API en el manifiesto), pero igual recibí el mismo mensaje de error.
Tuve que desinstalar la aplicación y reiniciar el teléfono para que el problema desaparezca. Parece que algo estaba siendo guardado en caché.
Si está utilizando una clave API creada para debug.keystore
, sus mapas solo se mostrarán si ejecuta su aplicación en modo de depuración. Asegúrate de estar haciendo eso.
Debes firmar tu apk con el mismo sh1 que registrar en la consola de google api mismo nombre del paquete de la aplicación y en el servicio v2 del mapa en la consola google api, asegúrate de haber firmado tu apk con la misma distribución de sh1 debug.keystore luego probar en un dispositivo real, funcionará como encanto.
Este es un problema del almacén de claves en el 99%.
1) Utilizo para liberar y depurar el mismo archivo debug.keystore que copio desde C: /Users/EEfimenko/.android/debug.keystore a la carpeta C: / Users / EEfimenko / Android / MyApp / app para acceder directamente como a ''debug.keystore'' sin el enlace "C: / Users / ..."
2) Luego le agrego un punto desde el archivo build.gradle (Module: app) en ''android {'': signingConfigs { debug { storeFile file(''debug.keystore'') } release { storeFile file(''debug.keystore'') } }
3) Ejecute el comando "keytool -list -v -keystore debug.keystore" desde cmd desde la carpeta C: / Users / EEfimenko / Android / MyApp / app y mezcle la huella resultante SHA1 con el nombre del applet: FR: TY: CG ... ..YF: ER; com.myapp.nameofit
4) luego voy a https://code.google.com/apis/console/b/0/?noredirect a:
a) Servicios y habilitar "Google Maps Android API v2" en estado ON
b) poner FR: TY: CG ..... YF: ER; com.myapp.nameofit en "Acceso API" como Crear nueva clave de Android
¡Ahora puede ver su mapa con la clave nuevamente como al principio sin llave! :)
Tal vez la clave no es correcta. Puedes probar lo siguiente:
- Asegúrese de ingresar el nombre correcto del paquete como este
- Prueba en un dispositivo real que actualizó la última versión de google play. O usa el emulador con esta guía
Active google map api v2 para Android en el sitio de la consola de google