2011-11-02 7 views
8

otro día otro problema, finalmente logré configurar correctamente google maps en mi aplicación de Android, o al menos pensé que lo había hecho, todo el programa comienza, incluso llama a la clase que debería "imprimir" un mapa, pero lo único que puedo ver es una cuadrícula con la etiqueta de google [en la esquina]. He comprobado el monitor Dalvik y el errorNo se pudo obtener el cliente de la fábrica de conexión - peleando con Google Maps

E/MapActivity (394): No se pudo obtener el cliente fábrica de conexiones

ocurre. Descubrí en el sitio web de stackoverflow que debería enviar una señal gps o algo así desde el monitor dalvik, y lo hice. No pasó nada, también recibí la clave de la API una vez más, pero nada cambió.

aquí es map.xml

<?xml version="1.0" encoding="utf-8"?> 
<!-- This file is /res/layout/mapview.xml --> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="horizontal" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content"> 
<Button android:id="@+id/zoomin" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="+" 
android:onClick="myClickHandler" 
android:padding="12px" /> 
<Button android:id="@+id/zoomout" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="-" 
android:onClick="myClickHandler" 
android:padding="12px" /> 
<Button android:id="@+id/sat" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="Satellite" 
android:onClick="myClickHandler" 
android:padding="8px" /> 
<Button android:id="@+id/street" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="Street" 
android:onClick="myClickHandler" 
android:padding="8px" /> 
<Button android:id="@+id/traffic" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="Traffic" 
android:onClick="myClickHandler" 
android:padding="8px" /> 
<Button android:id="@+id/normal" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="Normal" 
android:onClick="myClickHandler" 
android:padding="8px" /> 
</LinearLayout> 
<com.google.android.maps.MapView 
android:id="@+id/mapview" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:clickable="true" 
android:apiKey="0zPcz1VYRSpLusufJ2JoL0ffl2uxDMovgpW319w" /> 
</LinearLayout> 

que aquí hay una MapMapa.java

public class MapMapa extends MapActivity 
{ 
private MapView mapView; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.map); 
mapView = (MapView)findViewById(R.id.mapview); 
} 

public void myClickHandler(View target) { 
switch(target.getId()) { 
case R.id.zoomin: 
mapView.getController().zoomIn(); 
break; 
case R.id.zoomout: 
mapView.getController().zoomOut(); 
break; 
case R.id.sat: 
mapView.setSatellite(true); 
break; 
case R.id.street: 
mapView.setStreetView(true); 
break; 
case R.id.traffic: 
mapView.setTraffic(true); 
break; 
case R.id.normal: 
mapView.setSatellite(false); 
mapView.setStreetView(false); 
mapView.setTraffic(false); 
break; 
} 
} 
@Override 
protected boolean isLocationDisplayed() { 
return false; 
} 
@Override 
protected boolean isRouteDisplayed() { 
return false; 
} 

manifest.xml

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="menu.dot" android:versionCode="1" ndroid:versionName="1.0"> 
<application android:label="@string/app_name" android:icon="@drawable/icon"> 
<uses-library android:name="com.google.android.maps" /> 
<activity android:name="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> 
<activity android:name=".About"> 
android:label="@string/about_title" 
android:theme="@android:style/Theme.Dialog" > 
</activity> 
<activity android:name=".Exit"> 
andorid:label="@string/exit_title"> 
</activity> 
<activity android:name=".Options"> 
</activity> 
<activity android:name=".Start"> 
</activity> 
<activity android:name=".Create"> 
</activity> 
<activity android:name=".Where"> 
</activity> 
<activity android:name=".Proceed"> 
</activity> 
<activity android:name=".Finish"> 
</activity> 
<activity android:name=".Login"> 
</activity> 
<activity android:name=".OK"> 
</activity> 
<activity android:name=".UserPanel"> 
</activity> 
<activity android:name=".Managero"> 
</activity> 
<activity android:name=".Edition"> 
</activity> 
<activity android:name=".Done"> 
</activity> 
<activity android:name=".Delete"> 
</activity> 
<activity android:name=".MapMapa"> 
</activity> 

</application> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> 
<uses-permission android:name="android.permission.INTERNET"/> 
<uses-sdk android:minSdkVersion="3" /> 
</manifest> 

my view

+1

no estoy seguro si esto causaría ese problema, pero, ¿ha establecido el permiso de Internet en el manifiesto de Android ¿archivo? –

+1

@ user552629 Publique su archivo Manifest? – Venky

+2

Kurtis Nusbaum, no sabía que he corregido mi error;) – iie

Respuesta

6
E/MapActivity(394): Couldn't get connection factory client 

Esto no será problema en su caso. Es solo un mensaje de advertencia.

Para utilizar Map, cosas que hay que tener en cuenta:

1.Add permiso a internet en el archivo de manifiesto

<uses-permission android:name="android.permission.INTERNET" /> 

código Biblioteca 2.Add en el archivo de manifiesto:

<uses-library android:name="com.google.android.maps" /> 
  1. Extienda Map Activity en lugar de Activity también asegúrese de que su SDK es Google no Android

  2. luego generar la clave de mapa usando Release Key y no mediante el uso de Default Android Debug key Comprobar este post para crear Key using Release Key.

Para más referencias comprobar este enlace Mobi Forge

Output of your code

+2

He hecho todas estas cosas – iie

+1

hmm I ' he hecho esto para obtener la clave de google [este md5] keystore etc. ¿Tengo que hacer esta clave de liberación incluso para el emulador? – iie

+0

@iie No no es necesario para Emulator? – Venky

1

necesita construir archivo apk firmado, prueba con eso en tu móvil.Me pasó mismo problema

1

Android Programa Mapa En lo que tiene que poner permiso siguiente en el archivo de manifiesto de Android antes <application></application>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.INTERNET" />

y debe escribir en la etiqueta y antes de

<uses-library android:name="com.google.android.maps" />

y Generar la clave api del mapa ... Después de eso me encuentro con un problema. Después de crear un nuevo proyecto de Android con Google Api ... Resolví el problema ...

0

amigo, ¿cómo se obtiene la clave de la API? si el archivo debug.keystore se encuentra en sus documentos y configuraciones, probablemente necesite copiar keytool.exe para poder ejecutar keytool -list -alias androiddebugkey -keys tore debug.keystore -storepass android -keypass android -v

esto liberará una clave MD5 incorrecta. tiene que hacer lo siguiente 1- copiar su debug.keystore a los archivos de su programa java bin 2-ir a este directorio en cmd y ejecutar el comando keytool le dará un MD5 diferente y este es el correcto.

Cuestiones relacionadas