Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Geocoder getFromLocation()不为null,但大小始终为0_Android_Google Maps_Android Maps V2_Reverse Geocoding - Fatal编程技术网

Android Geocoder getFromLocation()不为null,但大小始终为0

Android Geocoder getFromLocation()不为null,但大小始终为0,android,google-maps,android-maps-v2,reverse-geocoding,Android,Google Maps,Android Maps V2,Reverse Geocoding,我正在尝试使用Google API v2检索我的位置地址 以下是我的工作: Geocoder geocoder = new Geocoder(this, Locale.getDefault()); List<Address> addresses = null; String addressText = ""; try { while (addresses==null){

我正在尝试使用Google API v2检索我的位置地址

以下是我的工作:

Geocoder geocoder = new Geocoder(this, Locale.getDefault());
            List<Address> addresses = null;
            String addressText = "";
            try {
                while (addresses==null){
                    addresses = geocoder.getFromLocation(userLocation.latitude,
                            userLocation.longitude, 1);
                }

                if (addresses != null && addresses.size() > 0) {
                    Address address = addresses.get(0);
                    addressText = String.format(
                            "%s, %s, %s",
                            address.getMaxAddressLineIndex() > 0 ? address
                                    .getAddressLine(0) : "", address
                                    .getLocality(), address.getCountryName());
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
Geocoder-Geocoder=new-Geocoder(这个,Locale.getDefault());
列表地址=空;
字符串addressText=“”;
试一试{
while(地址==null){
地址=geocoder.getFromLocation(userLocation.latitude,
userLocation.longitude,1);
}
if(addresses!=null&&addresses.size()>0){
地址=地址。获取(0);
addressText=String.format(
“%s,%s,%s”,
address.getMaxAddressLineIndex()>0?地址
.getAddressLine(0):“”,地址
.getLocation(),address.getCountryName());
}
}捕获(IOE异常){
e、 printStackTrace();
}
我读过几篇文章,发现getFromLocation()请求并不总是检索结果。所以我试着循环

这不会崩溃,但addressText始终是“”,知道为什么吗? 已为我的应用程序授予INTERNET权限。我不使用GPS


userLocation不是null,所以这不是问题所在,我使用它向地图添加一个标记,效果很好。严格来说,这似乎是地理编码器的问题。

您可以通过两种方法获得地址 1.使用地理编码器 2.使用googleapi

您可以从该链接获取解决方案。它有两种解决方案。访问我的谷歌API解决方案答案


我设法解决了这个问题。。。我的代码在getFromLocation()上引发服务不可用的异常

详情可在此找到:

我重新启动了我的设备,现在可以正常工作了。谢谢你的帮助

尝试重新启动设备! 我的代码在地理编码器上崩溃了。getFromLocation(lat,lng,1);和导致(IOE异常)
然而,在尝试了许多权限、代码更改等之后,我只需打开/关闭我的三星手机,它就工作了。。。我认为Linux内核应该比Windows好(不需要重新启动)?

< p>两人检查你没有交换你的LAT和LoSs:D我一直在大西洋中部请求一个地址,我花了大约3个小时才意识到。
此外,使用emulator GPS,您需要至少在我找到后启动谷歌地图,以初始化play services位置信息。

您是否尝试过增加结果数量?e、 g.
addresses=geocoder.getFromLocation(userLocation.latitude,userLocation.longitude,10)从技术上讲,这不重要,只是“感兴趣”!不,不幸的是那不起作用。但感谢您的及时回复:)我已经检查了您的答案,我有一个问题,parser_Json是什么类型的对象?它是一个Json解析类。它从给定的url返回JSON对象。不,它基本上是一个类,通过它可以读取和解析JSON字符串,并将其转换为JSONObject。我已经更新了这个问题的答案,并添加了json_解析器类。您可以从那里获得它。谢谢,我尝试了您的解决方案,但仍然没有显示地址,除了“”,没有显示null。也许我传递坐标的方式有问题,我会进一步研究。谢谢