我创建了简单的代码,只是为了从字符串位置获取地址。代码刹车在星号线上。为什么?如果我打印例外:服务不可用
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);
答案 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();
}
}