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();
         } 

ただし、アプリは毎回クラッシュします。ジオコーダーは緯度/経度を返していません。

コードに問題はありますか...plzplzアドバイス。

4

2 に答える 2

1

再確認してください

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

そうでないものを返しますnull- それ以外の場合: 次の行はNullPointerException


参考文献

于 2011-01-24T09:55:00.900 に答える
0

ジオコーダーにはコア Android フレームワークが付属していないため、Android バージョンの問題がありますが、これは 1.6、2.0、および API レベル 15 のような古いバージョンと新しいバージョンで正常に機能します。最初にこれらを試してみてください。間違いなく機能しますが、それでも自分で試してみることを主張します。 JSON を使用したジオコーダー クラス。

于 2013-01-11T19:27:47.083 に答える