張りとほす女の意地や藍ゆかた

システムエンジニアやってます

AndroidのGeocoderは 2.2のエミュレータで動かない

2011-05-07 00:49:00 | Android

JavaでAndroidアプリケーション、Google Maps APIを使ったものを作っています。

このMapがなかなか出ない。

サーバーの認証に時間がかかるせいなのか?なぜか最初すんなり出ない、というような書き込みを見かけたので、

  • Googleのアカウントを2つ取得し、それぞれにAPI Keyを取得してみたり、
  • .android\debug.keystoreではなく、自分でkeytoolでフィンガープリントを生成したり
  • そうして何度かKeyを変えて、クリーンしたり、エミュレータからアンインストールしたり…

結局、.android\debug.keystoreのキーで、地図が表示されました。

 Geocoder

ところが、DBから住所を取り出して、その住所の場所を地図上に表示する、というところで、「住所の取得に失敗しました」と終ってしまいます。

日本の住所でも、N.Y.の住所でもダメ。Geocoder.getFromLocationName("住所",候補件数) で、 IOException:Service not availableが発生。 これは住所の問題ではない

なぜだか、Geocoderが、Google Maps APIのクラスだと思い込んでいて、検索していたので、余計な時間がかかってしまった。

Google Maps API for Androidのリファレンスに、Geocoderはありません。Androidの標準ライブラリだもの。

改めて、android.location.Geocoderで探すと、Android2.2のエミュレータではダメで、2.1なら動くよというやり取りを発見。

https://groups.google.com/group/android-developers/browse_thread/thread/b02c29d746471358/81f09bbc825ffb26

それでは2.2より上のバージョンなら解決しているのか?ということで、上から順に試してみました。

3.0は、そもそも私の環境では、WindowsXP / Windows7(64) どちらも、メモリ2GBですが、メモリ不足で満足に動きませんでした。

2.3.3、2.3.1、2.2 全て、Service not available 2.X台の 2.2以上は未対応らしい。

2.1で、住所の文字列から地図上の住所の候補、緯度経度を取得できました



最新の画像もっと見る