android - una - Google Map API v2 no muestra Map en el dispositivo
google maps api key android (5)
Estoy ejecutando el código de muestra que se proporciona en la documentación de Google Map para Google Map Api v2 ( https://developers.google.com/maps/documentation/android/start#specify_settings_in_the_application_manifest ).
El código se ejecuta correctamente pero el mapa no se carga en el dispositivo. Sólo la pantalla blanca se muestra en el dispositivo. Estoy usando la versión 4.0.3 del dispositivo Android.
1) He habilitado el servicio para el proyecto.
2) Clave generada:
3) "google-play-services_lib" como biblioteca en el proyecto:
4) Manifiesto de Android:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.mapdemo"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<permission
android:name="com.example.mapdemo.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission android:name="com.example.mapdemo.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" />
<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" >
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyCvZrhQ8YBfyYBvTic3DSdu2O06nAmhpg4" />
<activity
android:name="com.example.mapdemo.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>
</application>
</manifest>
5) Actividad:
package com.example.mapdemo;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
6) Diseño:
<?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"
android:name="com.google.android.gms.maps.MapFragment"/>
Lo más probable es que su problema se resuelva cuando se asegure de lo siguiente:
Activar la API de Google Map
Use el nombre del paquete correcto al generar la Clave de API (en mi caso, este fue el error) ... y esto parece ser un problema para su caso, ya que el nombre del paquete parece ser incorrecto (com.example.mapdemo)
Asegúrese de que está utilizando el archivo de almacén de claves correcto para generar el SHA1
Esperamos que esto sea útil.
Para mantener la seguridad del sistema y los usuarios, Android requiere que las aplicaciones soliciten permiso antes de que las aplicaciones puedan usar ciertos datos y características del sistema. Dependiendo de cuán sensible sea el área, el sistema puede otorgar el permiso automáticamente o puede solicitar al usuario que apruebe la solicitud.
https://developer.android.com/guide/topics/permissions/index.html
Puede ser este problema con la clave API o simplemente verifica su huella dactilar SHA1 en la consola api de su proyecto ( https://console.developers.google.com/project ) y su eclipse Windows -> Preferencias -> Android -> Compilación son iguales, de otra manera solo actualice el SHA1 desde la consola para construir la ruta o viceversa.
Usar actividad de fragmentos
p.ej:
public class Maps extends FragmentActivity {
GoogleMap map;
double lat;
double lan;
boolean flag = false;
// private LocationManager lm;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mapptry);
map = ((SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map)).getMap();
}
}
Cambie ur map.xml a
<fragment
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="wrap_content"
android:layout_height="match_parent" />
EDITAR
Tengo que hacer esto tambien
importar android.support.v4.app.FragmentActivity;
Antes de hacer esto, haga clic con el botón derecho en proyecto-> propiedades-> ruta de compilación-> ruta de compilación java -> bibliotecas ... luego haga clic en agregar archivos externos
el ir a
usuario / android-sdks / extras / android / support / v4
y seleccione android-support-v4.jar
PD: Haz todo esto siempre que tu clave API sea correcta. Si la clave de API es incorrecta, entonces también muestra solo una pantalla blanca
intenta agregar
GoogleMap googleMap = ((MapFragment)getFragmentManager().findFragmentById(R.id.map)).getMap();
y reemplaza tu xml con
<?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"
android:name="com.google.android.gms.maps.MapFragment"
/>
ha agregado el siguiente código fuera de la etiqueta de la aplicación en lugar de ponerlo dentro de la etiqueta
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<permission
android:name="com.example.mapdemo.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
Espero que esto pueda ayudar a alguien que se enfrenta al mismo problema.