Android GeocoderNominatim.getFromLocationName()给了我一个异常

Android GeocoderNominatim.getFromLocationName()给了我一个异常,android,geocoding,osmdroid,Android,Geocoding,Osmdroid,我在OSMBonuspackV5.1中使用OSMDroidV4.3 我将国家名称“玻利维亚”传递给getLocationFromName,但我在浏览器的行列表中得到了一个IOException,我得到了一个正确的JSON 您知道如何解决这个问题吗?NetworkOnMainThreadException=>请参阅 您有3种解决方案: 使用异步任务 Android SDK为了让它对我来说简单,我选择了change StrictMode.ThreadPolicy!工作得很好!请参见此处的操作方法:

我在OSMBonuspackV5.1中使用OSMDroidV4.3

我将国家名称“玻利维亚”传递给getLocationFromName,但我在浏览器的行列表中得到了一个IOException,我得到了一个正确的JSON


您知道如何解决这个问题吗?

NetworkOnMainThreadException=>请参阅

您有3种解决方案:

使用异步任务
Android SDK为了让它对我来说简单,我选择了change StrictMode.ThreadPolicy!工作得很好!请参见此处的操作方法:
GeocoderNominatim coderNominatim = new GeocoderNominatim(context);
try {
    List<Address> geoResults = coderNominatim.getFromLocationName("Bolivia", 1);

    if (geoResults.size() == 0) { 
             Toast.makeText(context, "Country not found.", Toast.LENGTH_SHORT).show();
     } else {
            Address address = geoResults.get(0);
            Bundle extras = address.getExtras();
            BoundingBoxE6 bb = extras.getParcelable("boundingbox");
            mapView.zoomToBoundingBox(bb);
     }
} catch (IOException e) {
    Toast.makeText(context, "Geocoding error", Toast.LENGTH_SHORT).show();
}
 05-27 05:57:34.482: D/BONUSPACK(8392):         GeocoderNominatim::getFromLocationName:http://nominatim.openstreetmap.org/search?format=json&accept-language=en&addressdetails=1&limit=1&q=Bolivia
05-27 05:57:34.512: W/System.err(8392):     android.os.NetworkOnMainThreadException

05-27 05:57:34.512: W/System.err(8392):     at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1145)

05-27 05:57:34.523: W/System.err(8392):     at java.net.InetAddress.lookupHostByName(InetAddress.java:385)

05-27 05:57:34.523: W/System.err(8392):     at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)

05-27 05:57:34.523: W/System.err(8392):     at java.net.InetAddress.getAllByName(InetAddress.java:214)

05-27 05:57:34.523: W/System.err(8392):     at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:137)

05-27 05:57:34.523: W/System.err(8392):     at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)

05-27 05:57:34.523: W/System.err(8392):     at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)

05-27 05:57:34.533: W/System.err(8392):     at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)

05-27 05:57:34.533: W/System.err(8392):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)

05-27 05:57:34.533: W/System.err(8392):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)

05-27 05:57:34.533: W/System.err(8392):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)

05-27 05:57:34.533: W/System.err(8392):     at org.osmdroid.bonuspack.utils.HttpConnection.doGet(HttpConnection.java:73)

05-27 05:57:34.543: W/System.err(8392):     at org.osmdroid.bonuspack.utils.BonusPackHelper.requestStringFromUrl(BonusPackHelper.java:71)

05-27 05:57:34.543: W/System.err(8392):     at org.osmdroid.bonuspack.location.GeocoderNominatim.getFromLocationName(GeocoderNominatim.java:225)

05-27 05:57:34.543: W/System.err(8392):     at org.osmdroid.bonuspack.location.GeocoderNominatim.getFromLocationName(GeocoderNominatim.java:271)

05-27 05:57:34.543: W/System.err(8392):     at com.example.GeocoderNominatim.MainActivity$MapFragment.onCreateView(MainActivity.java:340)

05-27 05:57:34.543: W/System.err(8392):     at android.app.Fragment.performCreateView(Fragment.java:1700)

05-27 05:57:34.543: W/System.err(8392):     at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:890)

05-27 05:57:34.553: W/System.err(8392):     at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1062)

05-27 05:57:34.553: W/System.err(8392):     at android.app.BackStackRecord.run(BackStackRecord.java:684)
05-27 05:57:34.553: W/System.err(8392):     at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1447)

05-27 05:57:34.553: W/System.err(8392):     at android.app.FragmentManagerImpl$1.run(FragmentManager.java:443)

05-27 05:57:34.553: W/System.err(8392):     at android.os.Handler.handleCallback(Handler.java:733)

05-27 05:57:34.553: W/System.err(8392):     at android.os.Handler.dispatchMessage(Handler.java:95)

05-27 05:57:34.563: W/System.err(8392):     at android.os.Looper.loop(Looper.java:136)

05-27 05:57:34.573: W/System.err(8392):     at android.app.ActivityThread.main(ActivityThread.java:5146)

05-27 05:57:34.573: W/System.err(8392):     at java.lang.reflect.Method.invokeNative(Native Method)

05-27 05:57:34.573: W/System.err(8392):     at java.lang.reflect.Method.invoke(Method.java:515)

05-27 05:57:34.573: W/System.err(8392):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:732)

05-27 05:57:34.573: W/System.err(8392):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:566)

05-27 05:57:34.573: W/System.err(8392):     at dalvik.system.NativeStart.main(Native Method)