Android Studio Geocoder RPC 失败,状态为 102

Android Studio Geocoder RPC failed with status 102

正在进行从数据库获取地址的项目。

从这些地址我得到 LatLng 并将它们固定在 Google 地图 Activity 上。

我使用此方法从地址获取 LatLng:

     public LatLng getLocationFromAddress(Context context, String inputtedAddress) {

    Geocoder coder = new Geocoder(context);
    List<Address> address;
    LatLng resLatLng = null;

    try {
        // May throw an IOException
        address = coder.getFromLocationName(inputtedAddress, 5);
        if (address == null) {
            return null;
        }

        if (address.size() == 0) {
            return null;
        }

        Address location = address.get(0);
        location.getLatitude();
        location.getLongitude();

        resLatLng = new LatLng(location.getLatitude(), location.getLongitude());

    } catch (IOException ex) {

        ex.printStackTrace();

    }

    return resLatLng;

直到 2 天前,它给了我来自 285 个地址的 164 个正确坐标。由于某些原因,某些地址将 LatLng 设为空值。

在不更改任何代码的情况下,现在我在前 8-10 次调用地理编码器时收到以下错误:

    W/System.err: java.io.IOException: Timed out waiting for response from server
    W/System.err:     at android.location.Geocoder.getFromLocationName(Geocoder.java:178)

之后,其余报错:

W/System.err: java.io.IOException: RPC failed with status 102
              at android.location.Geocoder.getFromLocationName(Geocoder.java:178)

给出错误的确切行是:

    address = coder.getFromLocationName(inputtedAddress, 5);

编辑:

经过更多调查,我发现 Geocoder.java class 有错误,缺少一些方法:

重新安装 Android Studio 可行吗?

此问题已在

中解决

解决方案是将 Google Play 服务升级到修订版 44+

模拟器似乎没有互联网连接。从以太网更改为 WiFi 解决了该问题。在以太网上,DNS 是域一,因此由于某种原因无法连接到 Internet。