无法从Geocoder获取地址

时间:2014-05-01 20:58:38

标签: android google-geocoder

我创建了简单的代码,只是为了从字符串位置获取地址。代码刹车在星号线上。为什么?如果我打印例外:服务不可用

List<Address> address;
    String myAddress = "Vilnius";
    Geocoder coder = new Geocoder(getApplicationContext(), Locale.getDefault());
                        System.out.println("coder : :" + coder);
                        **address = coder.getFromLocationName(myAddress, 1);**
                        ObjLoc1adr = coder.getFromLocationName(ObjLoc1String, 1);
                        ObjLoc2adr = coder.getFromLocationName(ObjLoc2String, 1);

1 个答案:

答案 0 :(得分:1)

因此,您应始终将该代码包装在try块中以捕获IOException。无法保证Geocoder始终可以找到位置或服务可以访问。这不是您的代码或设备的错误。一个简单的连接问题或超时就足以制止你的应用程序。

要保存,请执行以下操作:

if(GeoCoder.isPresent()) {

    Geocoder geocoder = new Geocoder(this);
    String myAddress = "Vilnius";
    List<Address> addresses = null;
    try {
        address = geocoder.getFromLocationName(myAddress, 1);
        if (!addresses.isEmpty()) {
            Address address = list.get(0);
            // do something with your address
        } else {
            // No results for your location
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}