0

我的代码如下:

Geocoder geocoder = new Geocoder(this,Locale.UK );
         List<Address> addresses = null;
         Toast.makeText(displaybyName.this, "country: before " , Toast.LENGTH_SHORT).show(); 
   try {
    Toast.makeText(displaybyName.this, "country: before " , Toast.LENGTH_SHORT).show(); 

    addresses = geocoder.getFromLocationName( 
      "Camden", 1);

    if (addresses.size() > 0) {

           geopoint = new GeoPoint(
                         (int) (addresses.get(0).getLatitude() * 1E6), 
                         (int) (addresses.get(0).getLongitude() * 1E6));

           //Animating on display

           mapcontroller.animateTo(geopoint);
           mapcontroller.setZoom(5); 
           mapview.invalidate();
          } 


   } catch (IOException io) {
    // TODO Auto-generated catch block
    Toast.makeText(displaybyName.this, "Connection Error", Toast.LENGTH_SHORT).show();
   }

   if (addresses.size() > 0) {

          geopoint = new GeoPoint(
                        (int) (addresses.get(0).getLatitude() * 1E6), 
                        (int) (addresses.get(0).getLongitude() * 1E6));

          //Animating on display

          mapcontroller.animateTo(geopoint);
          mapcontroller.setZoom(5); 
          mapview.invalidate();
         } 

但是,该应用程序每次都崩溃。地理编码器没有返回任何纬度/经度。

代码有什么问题吗...请指教。

4

2 回答 2

1

仔细检查

addresses = geocoder.getFromLocationName("Camden", 1);

返回不是的东西null- 否则:以下行将引发NullPointerException


延伸阅读

于 2011-01-24T09:55:00.900 回答
0

存在 android 版本问题,因为 geocoder 没有附带核心 android 框架,但这在 1.6、2.0 和 API 级别 15 等新旧版本上都可以正常工作,首先尝试这些肯定会工作,但仍然坚持只尝试你自己的使用 JSON 的地理编码器类。

于 2013-01-11T19:27:47.083 回答