6

以下のコードは、1.5、1.6、および 2.0 で実行されている実際のデバイスと、2.1 で実行されているエミュレーターで完全に機能します。

ただし、Nexus One (2.1 を実行) で実行すると、IOException が発生します。

java.io.IOException: Unable to parse response from server
at android.location.Geocoder.getFromLocation(Geocoder.java:124)

それが起こるコードスニペットです:

Double myLatitude = AppObject.myLocation.getLatitude();
Double myLongitude = AppObject.myLocation.getLongitude();
DEBUG.i(TAG, "My location: " + myLatitude + " | " + myLongitude);
Geocoder geocoder = new Geocoder(MainActivity.this);
java.util.List<Address> addressList;
try {
    addressList = geocoder.getFromLocation(myLatitude, myLongitude, 5);
    if(addressList!=null && addressList.size()>0) {
        currentAddress = new String();
        DEBUG.i(TAG,addressList.get(0).toString());
        currentAddress = addressList.get(0).getAddressLine(0) + ", "
        + addressList.get(0).getAddressLine(1) + ", "
        + addressList.get(0).getAddressLine(2); 

    }
    return true;

} catch (IOException e) {
    e.printStackTrace();
    return false;
}
4

2 に答える 2

1

こんにちは、私は同じ問題と同じ状況に陥りました。Nexus One を手に入れたので、回避策を見つけましたaddressList = geocoder.getFromLocation(myLatitude, myLongitude, 1);。デバイスを再起動するだけです。私が気付いたのは、Geocoder の getFromLocation メソッドが Locale 設定の変更を認識していないことです (私の場合、メソッドが機能しなくなった原因は、デフォルトの Locale の変更でした)。再起動後、すべてが機能しました。誰もがこれについて合理的な理由を持っていますか? (ゲームという言葉でごめんなさい:-P)

于 2011-08-22T20:22:39.957 に答える
0

HTC Tmobile G2 を使用していますが、GeoCoder ベースの機能をテストしているときに同じ問題が発生しました。再起動は役に立ちましたが、私の顧客がこれについて不平を言い始めたとき、それは受け入れられる解決策ではありません. これが何らかのキャッシュ クリアの問題である場合は、プログラムで回避策を導入できることを願っています。

于 2011-11-03T23:08:38.360 に答える