GRPC使用geocoder失败

11

我正在使用Android Studio。

我正在尝试在点击时从Google Maps获取位置名称。

我正在使用Geocoder。

每次我在地图上点击某个地方,标记会出现在那里,但我无法获取城市名称,而且我还收到了一个GRPC失败的错误。

我该怎么办?我已经尝试过api 23、24、25,但都没有成功。

我的onMapClick函数:

 @Override
public void onMapClick(LatLng latLng) {
    mMap.clear();
    mMap.addMarker(new MarkerOptions().position(latLng).title("Konum"));
    mMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));

    Geocoder geocoder = new Geocoder(MapsActivity.this.getBaseContext(), Locale.getDefault());

    try {
        List<Address> city = geocoder.getFromLocation(latLng.latitude,latLng.longitude,1);
        if (city != null && city.size() > 0){
            Log.i("Info",city.get(0).getLocality());
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}

W/System.err: java.io.IOException: grpc失败 W/System.err: at com.example.umut.googlemapstest.MapsActivity$override.onMapClick(MapsActivity.java:127)

这说明

List<Address> city = geocoder.getFromLocation(latLng.latitude,latLng.longitude,1);

这段代码


3
这是在模拟器上还是实际设备上运行?已知在 Android 模拟器上 Geocoder 无法正常工作。 - AndrewR
是的,我正在使用Android Studio模拟器。我没有实际的Android设备。有其他替代方案吗? - MePengusta
1
目前很遗憾没有任何适用于模拟器的解决方案。 - AndrewR
1
你有什么进展吗?我在模拟器上运行正常,但在摩托罗拉设备上出现了问题。 - M.SH
我相信现在在模拟器上无法运行的问题已经解决了。 - AndrewR
我在特定的Moto设备上也遇到了这个问题。但在同型号的另一个设备上运行良好。 - Nitesh
1个回答

0

我有关于异常 "java.io.ioexception grpc failed" 的解决方案:

try {
    Geocoder geocoder = new Geocoder(MainActivity.this, Locale.getDefault());
    List addresses = geocoder.getFromLocation(latitude, longitude, 1); 
    List<Address> addresslist = addresses;
    String address = addresslist.get(0).getAddressLine(0);
    Log.d("add",address);
} catch (IOException e) {
    e.printStackTrace();
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接