Android真实设备上的Geocoder.getFromLocation grpc失败

far*_*ath 10 android google-maps latitude-longitude android-location google-geocoder

我需要从纬度和经度获得城市和州.Geocoder执行此功能以获得城市和州.但我java.io.IOException: grpc failed只在Android真实设备上收到错误.它在模拟器中运行良好.

new Geocoder(context).getFromLocation(latLng.latitude, latLng.longitude, 1).get(0);
Run Code Online (Sandbox Code Playgroud)

此外,我一直在使用Asynctask调用此函数,这是在另一篇文章中建议的Geocoder grpc在堆栈溢出失败,但对我没有任何作用.

我也重启了设备但仍然失败了.

需要帮助.提前致谢.

注意:我测试了Google Pixel XL,三星S6边缘,三星S4.

xom*_*ena 10

看起来这是Google问题跟踪器中针对真实设备和模拟器报告的持续问题.您可以参考以下错误:

https://issuetracker.google.com/issues/64418751

https://issuetracker.google.com/issues/64247769

不幸的是,谷歌还没有解决这些问题.

作为解决方法,您可以考虑使用Geocoding API Web服务.请注意,您可以在Github上找到用于Web服务的Java客户端库:

https://github.com/googlemaps/google-maps-services-java

使用Java客户端库进行Web服务,您可以实现反向地理编码查找,该查找不应该为您提供使用本机Android地理编码器时遇到的错误.

客户端库的Javadoc位于

https://googlemaps.github.io/google-maps-services-java/v0.2.5/javadoc/

我希望这有帮助!

  • 是这个问题的任何其他解决方案? (4认同)
  • 一年半后,这两个错误的状态都是“新”。感谢谷歌。 (4认同)
  • 大声笑 .. 只需将该调用放在后台线程或协程中即可 (2认同)

Pxa*_*aml 7

检查您的互联网连接。在搜索和结果渲染之间的某个时刻发生了什么,连接要么变慢要么根本无法工作。因此默认错误是未找到GRCP。您的代码需要处理此类错误并防止地图崩溃