2016-04-03 96 views
0

我一直在开发和Android应用程序,它使用Google的地理编码器将不同的纬度和经度转换为人类可读的地址,但就在几分钟前,我已经收到IOException并显示以下消息“超时等待服务器响应”。其他人是否面临同样的问题?我知道今年1月,地理编码器API发生了类似的问题,这是Google的问题。使用gocoder时发生IOException:超时等待服务器响应

我几个月来没有改变任何与应用程序中地理编码器的使用相关的任何内容。

我用预期的地理编码器:

Geocoder geocoder = new Geocoder(this, Locale.getDefault()); List addresses = geocoder.getFromLocation(latitude, longitude, 1);

而且我在我的清单中的正确的权限:

<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

下面是完整的堆栈跟踪,我得到:

04-03 22:55:51.788 19955-19955/com.tek3.thanksfrog W/System.err: java.io.IOException: Timed out waiting for response from server 
04-03 22:55:51.798 19955-19955/com.tek3.thanksfrog W/System.err:  at android.location.Geocoder.getFromLocation(Geocoder.java:136) 
04-03 22:55:51.798 19955-19955/com.tek3.thanksfrog W/System.err:  at com.tek3.thanksfrong.AppController.getLocationInfoFromLatLng(AppController.java:687) 
04-03 22:55:51.798 19955-19955/com.tek3.thanksfrog W/System.err:  at com.tek3.thanksfrong.fragments.NewSceneFragment.loadCurrentLocationAddress(NewSceneFragment.java:268) 
04-03 22:55:51.808 19955-19955/com.tek3.thanksfrog W/System.err:  at com.tek3.thanksfrong.fragments.NewSceneFragment.onResume(NewSceneFragment.java:247) 
04-03 22:55:51.808 19955-19955/com.tek3.thanksfrog W/System.err:  at android.support.v4.app.Fragment.performResume(Fragment.java:1832) 
04-03 22:55:51.808 19955-19955/com.tek3.thanksfrog W/System.err:  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:995) 
04-03 22:55:51.808 19955-19955/com.tek3.thanksfrog W/System.err:  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1138) 
04-03 22:55:51.818 19955-19955/com.tek3.thanksfrog W/System.err:  at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:740) 
04-03 22:55:51.818 19955-19955/com.tek3.thanksfrog W/System.err:  at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1501) 
04-03 22:55:51.818 19955-19955/com.tek3.thanksfrog W/System.err:  at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:458) 
04-03 22:55:51.818 19955-19955/com.tek3.thanksfrog W/System.err:  at android.os.Handler.handleCallback(Handler.java:725) 
04-03 22:55:51.818 19955-19955/com.tek3.thanksfrog W/System.err:  at android.os.Handler.dispatchMessage(Handler.java:92) 
04-03 22:55:51.818 19955-19955/com.tek3.thanksfrog W/System.err:  at android.os.Looper.loop(Looper.java:176) 
04-03 22:55:51.818 19955-19955/com.tek3.thanksfrog W/System.err:  at android.app.ActivityThread.main(ActivityThread.java:5317) 
04-03 22:55:51.828 19955-19955/com.tek3.thanksfrog W/System.err:  at java.lang.reflect.Method.invokeNative(Native Method) 
04-03 22:55:51.828 19955-19955/com.tek3.thanksfrog W/System.err:  at java.lang.reflect.Method.invoke(Method.java:511) 
04-03 22:55:51.828 19955-19955/com.tek3.thanksfrog W/System.err:  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102) 
04-03 22:55:51.828 19955-19955/com.tek3.thanksfrog W/System.err:  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869) 
04-03 22:55:51.828 19955-19955/com.tek3.thanksfrog W/System.err:  at dalvik.system.NativeStart.main(Native Method) 
+0

我已经看到其他职位,提到'Geocoder'运行不正常,即使它做得更早(几个小时/天前)。我去了公共门票 - https://code.google.com/p/gmaps-api-issues/issues/detail?id=9153 - 这是去年1月份发生的,而且似乎还有其他人现在体验这种权利。你提到你没有修改代码中的任何东西,对吧? –

+1

正确!我没有改变任何东西。这个问题似乎是固定的。正如预期的那样再次运行。 – mgvaldes

回答

0

首先,它取决于你工作的Android版本。例如在API 23中,您需要检查是否有权使用位置权限?

我的第二点是:你检查你的位置(经度和纬度)是否不为空。因为如果您使用位置管理器,有时位置为空,因为GPS比网络慢或者因为网络和GPS不可用。

但是我不确定我的最后一点,但是使用Google的地理编码器不需要API密钥?或者,也许我只是混合了一切

+0

我使用API​​ 21. 此外,我已经检查传递给geocoder.getFromLocation()调用的纬度和经度都不为null。 – mgvaldes

+0

对于职位?你检查这个位置是否为空? – kevingiroux

+0

您可以添加错误的完整堆栈跟踪吗? – kevingiroux

相关问题