studio - Android Google Map API V2 pantalla en blanco
google maps android api v2 source code (12)
Debe ejecutar su aplicación en un amulador con la siguiente configuración .... 1) API de Google (imagen del sistema x86) 2) seleccione checkBox que indique Usar GPU host.
Hola, recientemente seguí el tutorial de Vogella sobre Google Map API v2. El código es similar al suyo. Pero por alguna razón, el mapa aparece en blanco y el logcat tampoco muestra ningún error. También seguí este video para obtener la huella digital SHA1 y luego coloqué la clave API en el archivo de manifiesto. Usé el almacén de claves de depuración C: / Users / UserName.android / debug.keystore que también es el almacén de claves de depuración predeterminado ubicado en Eclipse -> Windows -> Preference -> Android -> Build.
También generé una nueva clave API y todavía no funciona.
Archivo de manifiesto:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.barcodelibrary"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="15" />
<permission
android:name="com.example.mapdemo.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-feature android:name="android.hardware.camera.flash" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.SET_DEBUG_APP"></uses-permission>
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".HomeActivity"
android:label="@string/title_activity_home" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".ScanActivity"/>
<activity android:name=".MapActivity"/>
<activity android:name=".BarcodeHelper"/>
<activity android:name=".JsonHelper"/>
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="my api key" />
</application>
</manifest>
Este es mi archivo de diseño para la actividad del mapa:
<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=".MapActivity" >
<fragment
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.MapFragment" />
</RelativeLayout>
Esta es mi actividad en el mapa:
public class MapActivity extends Activity
{
static final LatLng HAMBURG = new LatLng(53.558, 9.927);
static final LatLng KIEL = new LatLng(53.551, 9.993);
private GoogleMap map;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_map);
map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map))
.getMap();
Marker hamburg = map.addMarker(new MarkerOptions().position(HAMBURG)
.title("Hamburg"));
Marker kiel = map.addMarker(new MarkerOptions()
.position(KIEL)
.title("Kiel")
.snippet("Kiel is cool")
.icon(BitmapDescriptorFactory
.fromResource(R.drawable.ic_launcher)));
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_map, menu);
return true;
}
}
¡Gracias!
En mi caso, era una aplicación existente que cloné desde GitHub y no cambié la clave API. Lo que funcionó para mí es habilitar el SHA-1 de mi certificado de firma. Siga estas breves instrucciones para obtener una huella dactilar SHA-1.
Luego hice que el desarrollador principal agregara mi huella dactilar SHA-1 a los paquetes autorizados para su clave de API relevante here . Luego volví a hacer la construcción de la misma manera y funcionó.
Establezca la nota de teclado personalizada en la misma que la predeterminada (Eclipse). Y registre una clave API en la consola de Google como se dice en la documentación.
La mayoría de las personas se olvidan de activar Google Maps Android API V2 en la consola del desarrollador , lo activé y listo, mi mapa apareció.
Para mí, resultó que no habilité la Google Maps Android API v2
. Estábamos usando otra API de Google Maps que asumí que era la misma.
Si no funcionó, sigue esto
Resolver el problema de la pantalla en blanco en los mapas: Hola, he estado en esta pantalla en blanco durante mucho tiempo y probé todas las soluciones que puedas imaginar. Ahora se resolvieron y los pasos fueron:
1-Sigue cuidadosamente todos los pasos de este tutorial .
2-Si la pantalla en blanco sigue siendo la misma, elimine el archivo del almacén de claves de depuración que existe en c: / Users / youUser.android / debug.keystore <- elimine este archivo
3-En el IDE de eClips, reconstruya su aplicación para que vuelva a crear este archivo automáticamente. 4-En los eclips, vaya a Ventana -> Preferencias -> Android -> Compilación copie el SHA1 recién generado y luego siga los pasos normales de generación de claves. 5-Ejecuta en tu dispositivo real, y espero que veas tu mapa :)
Tengo un problema similar con el mapa. Después de arreglar todos los problemas de lib y clave, acabo de ver una pantalla blanca etiquetada con "Google". El problema fue que puse el MapFragment
en un ScrollView
. Después de quitar el ScrollView
todo funciona bien. Puedo ver el mapa.
Tengo un problema similar, donde la depuración estaba bien, pero la pantalla en blanco en el lanzamiento. Las claves API estaban bien.
Lo que funcionó es reemplazar esto:
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="@string/google_maps_key" />
Por esto
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXGNc" />
Agregue directamente su clave api sin una cadena de recursos
Tienes un par de problemas de permiso con tu manifiesto. Primero, a continuación, debe reemplazar el nombre del paquete con su paquete, como uses-permission
<permission
android:name="com.example.mapdemo.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
por su nombre de paquete, debe ser -
<permission
android:name="com.example.barcodelibrary.permission.MAPS_RECEIVE"
android:protectionLevel="signature"/>
<uses-permission android:name="com.example.barcodelibrary.permission.MAPS_RECEIVE"/>
Finalmente, parece que le faltan los siguientes permisos en la sección de permisos especificados de la Guía de introducción :
<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"/>
Tuve que agregar la huella digital del certificado SHA-1 correcto a mi Consola de desarrollador de Google.
Muestre la huella digital actual:
keytool -list -keystore ~/.android/debug.keystore
Copie la huella digital (por ejemplo, 48: 6F: 55: B7: C5: E4: 54: E1: 29: D5: E1: E1: E2: A8 )
Agréguelo a sus credenciales para esa aplicación en particular en la Consola de desarrollador de Google
Mi respuesta en otra publicación es lo que realmente funciona para mí, pego el certificado de firma de la aplicación sha-1