Android Geocoder.getLocationFromName () throws IOException: Servicio no disponible en Device

Estoy utilizando el método Geocoder.getLocationFromName () en el emulador y mi teléfono (Nexus S con Android 4.1) y obtengo la siguiente excepción:

java.io.IOException: Service not Available 

Hay una serie de preguntas acerca de esta aparición en el emulador ( ejemplo ), y la mayoría de ellos dicen que es una versión específica del emulador que tiene el problema. Sin embargo, la excepción aparece en mis AVD (2.3 y 4.1) y en mi teléfono.

Tanto mi teléfono como los AVD tienen conexión a Internet. Mi versión de la API es 16 (android 4.1), pero también intenté con los más viejos. Ambos AVD incluyen API de Google.

¿Alguna idea de lo que está pasando aquí?

Este es el fragmento de código relevante:

 Geocoder myGeocoder = new Geocoder(getApplicationContext(), Locale.getDefault()); List<Address> newAddresses = myGeocoder.getFromLocationName(arg0.toString(), 10); 

Y este es mi manifiesto:

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.asdasd" android:versionCode="6" android:versionName="1.3.1"> <uses-sdk android:minSdkVersion="16" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <application android:icon="@drawable/ic_launcher_asdasd" android:label="@string/app_name"> <activity android:name=".AsdasdActivity" android:label="@string/app_name" android:screenOrientation="portrait" android:windowSoftInputMode="stateHidden"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="com.google.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation" /> </application> </manifest> 

Asegúrese de que el objetivo de creación de la aplicación esté establecido en una de las API de Google y no simplemente en Android 4.0 (o similar). Puede cambiar esta configuración en Eclipse haciendo clic con el botón derecho del ratón en su proyecto y seleccionando "Propiedades" y luego "Android". Como alternativa, simplemente puede editar el archivo project.properties en algo como lo siguiente:

 # Project target target=Google Inc.:Google APIs:16 

La razón es que la clase Geocoder está presente en el marco principal de Android, pero depende del código aportado por las API de Google para funcionar correctamente. Incluso si su AVD incluye las API de Google, su proyecto todavía debe construirse en relación con esa meta de compilación específica.

  • ¿Cuál es la mejor manera de interpretar la ubicación del usuario junto a Geocoder
  • Android - Geocoder no obtener la cadena de direcciones
  • Android: Nexus One - Geocoder causa IOException - funciona perfectamente con otros dispositivos y emuladores
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.