我正在尝试使用谷歌地图。我有这段代码:
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
mMap.getUiSettings().setZoomControlsEnabled(true);
List <Address> addressList = null;
if (location != null || !location.equals("")){
Geocoder geocoder = new Geocoder(this);
try {
addressList = geocoder.getFromLocationName(location, 1);
}catch (IOException e){
e.printStackTrace();
}
Address address = addressList.get(0);
LatLng latLng = new LatLng(address.getLatitude(), address.getLongitude());
mMap.addMarker(new MarkerOptions().position(latLng).title(location));
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, 15));
}
}
但我收到了这个: addressList size 0.错误“java.lang.IndexOutOfBoundsException:索引0无效,大小为0” location是我的变量,但工作正常。我究竟做错了什么?非常感谢。
答案 0 :(得分:1)
获得零结果的可能性
列表getFromLocationName(String locationName,int maxResults):返回:Address对象列表。如果未找到匹配项或没有可用的后端服务,则返回null或空列表。
在调用Geocoder的任何方法获取地址或结果之前,请检查Geocoder服务是否可以使用Geocoder.isPresent()实现
if(Geocoder.isPresent()){
//do your stuff
}else{
//cann't implement geocoder
}