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