Android IllegalStateException目标不能为null

Android IllegalStateException目标不能为null,android,android-widget,Android,Android Widget,嗨,我想创建一个活动,在其中我想根据所选的位置更改列表的内容,所以我写了一个覆盖类 class MapOverlay extends com.google.android.maps.Overlay { @Override public boolean draw(Canvas canvas, MapView mapView, boolean shadow, long when) {

嗨,我想创建一个活动,在其中我想根据所选的位置更改列表的内容,所以我写了一个覆盖类

class MapOverlay extends com.google.android.maps.Overlay
        {
            @Override
            public boolean draw(Canvas canvas, MapView mapView, boolean shadow, long when) 
            {
                super.draw(canvas, mapView, shadow);                   

                //---translate the GeoPoint to screen pixels---
             return false;
            }

            @Override
            public boolean onTouchEvent(MotionEvent event, MapView mapView) 
            {   
                //---when user lifts his finger---
                if (event.getAction() == 1) {                
                    GeoPoint p = mapView.getProjection().fromPixels(
                        (int) event.getX(),
                        (int) event.getY());

                           double x = p.getLatitudeE6() / 1E6 ;
                           double y= p.getLongitudeE6() /1E6 ; 
                           String url="http://api.v3.factual.com/t/global?geo={\"$circle\":{\"$center\":["+x+","+y+"],\"$meters\":5000}}&KEY=uZSowx1CRS4oD2R8kQGGgjkbFoDMHlriDl1IAoQc";
                      url=URLEncoder.encode(url);
                           HttpGet get=new HttpGet(url);
                          try {
                            HttpResponse response=client.execute(get);
                        Log.i("hello",EntityUtils.toString(response.getEntity()));
                        } catch (ClientProtocolException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        } catch (IOException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                }                            
                return true;
            }        
        }
但当我点击任何一项时,它会显示force close并显示错误 Java.lang.IllegalStateException目标主机不能为null,并在参数中设置。请帮助解决此错误。 这是错误的记录

03-30 12:30:52.267: E/AndroidRuntime(692): Uncaught handler: thread main exiting due to uncaught exception
03-30 12:30:52.277: E/AndroidRuntime(692): java.lang.IllegalStateException: Target host must not be null, or set in parameters.
03-30 12:30:52.277: E/AndroidRuntime(692):  at org.apache.http.impl.client.DefaultRequestDirector.determineRoute(DefaultRequestDirector.java:561)
03-30 12:30:52.277: E/AndroidRuntime(692):  at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:292)
03-30 12:30:52.277: E/AndroidRuntime(692):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
03-30 12:30:52.277: E/AndroidRuntime(692):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
03-30 12:30:52.277: E/AndroidRuntime(692):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
03-30 12:30:52.277: E/AndroidRuntime(692):  at factual.box.android.Factual_Mapping$MapOverlay.onTouchEvent(Factual_Mapping.java:91)
03-30 12:30:52.277: E/AndroidRuntime(692):  at com.google.android.maps.OverlayBundle.onTouchEvent(OverlayBundle.java:63)
03-30 12:30:52.277: E/AndroidRuntime(692):  at com.google.android.maps.MapView.onTouchEvent(MapView.java:625)
03-30 12:30:52.277: E/AndroidRuntime(692):  at android.view.View.dispatchTouchEvent(View.java:3709)
03-30 12:30:52.277: E/AndroidRuntime(692):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:852)
03-30 12:30:52.277: E/AndroidRuntime(692):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
03-30 12:30:52.277: E/AndroidRuntime(692):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
03-30 12:30:52.277: E/AndroidRuntime(692):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
03-30 12:30:52.277: E/AndroidRuntime(692):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
03-30 12:30:52.277: E/AndroidRuntime(692):  at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659)
03-30 12:30:52.277: E/AndroidRuntime(692):  at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107)
03-30 12:30:52.277: E/AndroidRuntime(692):  at android.app.Activity.dispatchTouchEvent(Activity.java:2061)
03-30 12:30:52.277: E/AndroidRuntime(692):  at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643)
03-30 12:30:52.277: E/AndroidRuntime(692):  at android.view.ViewRoot.handleMessage(ViewRoot.java:1691)
03-30 12:30:52.277: E/AndroidRuntime(692):  at android.os.Handler.dispatchMessage(Handler.java:99)
03-30 12:30:52.277: E/AndroidRuntime(692):  at android.os.Looper.loop(Looper.java:123)
03-30 12:30:52.277: E/AndroidRuntime(692):  at android.app.ActivityThread.main(ActivityThread.java:4363)
03-30 12:30:52.277: E/AndroidRuntime(692):  at java.lang.reflect.Method.invokeNative(Native Method)
03-30 12:30:52.277: E/AndroidRuntime(692):  at java.lang.reflect.Method.invoke(Method.java:521)
03-30 12:30:52.277: E/AndroidRuntime(692):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
03-30 12:30:52.277: E/AndroidRuntime(692):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
03-30 12:30:52.277: E/AndroidRuntime(692):  at dalvik.system.NativeStart.main(Native Method)
03-30 12:30:52.297: I/dalvikvm(692): threadid=7: reacting to signal 3
03-30 12:30:52.317: I/dalvikvm(692): Wrote stack trace to '/data/anr/traces.txt'
您编码了“http://”,因此您的url无效
试着用这样的东西

String geoData=URLEncoder.encode("{\"$circle\":{\"$center\":["+x+","+y+"],\"$meters\":5000}}");  
String key = "uZSowx1CRS4oD2R8kQGGgjkbFoDMHlriDl1IAoQc";  
String urlPattern  ="http://api.v3.factual.com/t/global?geo=%s&KEY=%s";  
String url = String.format(urlPattern, geoData,key);  
您编码了“http://”,因此您的url无效
试着用这样的东西

String geoData=URLEncoder.encode("{\"$circle\":{\"$center\":["+x+","+y+"],\"$meters\":5000}}");  
String key = "uZSowx1CRS4oD2R8kQGGgjkbFoDMHlriDl1IAoQc";  
String urlPattern  ="http://api.v3.factual.com/t/global?geo=%s&KEY=%s";  
String url = String.format(urlPattern, geoData,key);  

不要编码,使用下面的代码

         String url = "http://api.v3.factual.com/t/global?KEY=uZSowx1CRS4oD2R8kQGGgjkbFoDMHlriDl1IAoQc";
        HttpParams params = new BasicHttpParams();
        params.setParameter("geo", "{\"$circle\":{\"$center\":[\" + x + \",\" + y + \"],\"$meters\":5000}}");
        HttpGet get = new HttpGet(url);

不要编码,使用下面的代码

         String url = "http://api.v3.factual.com/t/global?KEY=uZSowx1CRS4oD2R8kQGGgjkbFoDMHlriDl1IAoQc";
        HttpParams params = new BasicHttpParams();
        params.setParameter("geo", "{\"$circle\":{\"$center\":[\" + x + \",\" + y + \"],\"$meters\":5000}}");
        HttpGet get = new HttpGet(url);

你可以发布整个错误日志以便我能理解…你可以发布整个错误日志以便我能理解…请给出一些java代码行如何编码此url以便我获得json数据。在我的浏览器上显示正确json数据的url。请给出一些java代码行如何编码此url,以便我获得json数据。在我的浏览器上显示正确json数据的url。