Android 当使用地理编码器输入无效或空位置时,应用程序崩溃

Android 当使用地理编码器输入无效或空位置时,应用程序崩溃,android,google-maps-android-api-2,google-geocoder,Android,Google Maps Android Api 2,Google Geocoder,我一直在谷歌地图上工作,希望用户可以使用地理编码访问位置,虽然它正在工作,但当用户在编辑文本中输入无效位置或空位置时,问题就会出现,我的应用程序会崩溃。 这是我的代码:(在搜索按钮上单击) public void onSearch(视图){ EditText地址搜索=(EditText)findViewById(R.id.edtSearchAddress); 字符串位置=addressSearch.getText().toString(); List addressList=null; if(l

我一直在谷歌地图上工作,希望用户可以使用地理编码访问位置,虽然它正在工作,但当用户在编辑文本中输入无效位置或空位置时,问题就会出现,我的应用程序会崩溃。 这是我的代码:(在搜索按钮上单击)

public void onSearch(视图){
EditText地址搜索=(EditText)findViewById(R.id.edtSearchAddress);
字符串位置=addressSearch.getText().toString();
List addressList=null;
if(location!=null | |!location.equals(“”){
addressSearch.setText(“”);
Geocoder Geocoder=新的Geocoder(这个,Locale.getDefault());
试一试{
addressList=geocoder.getFromLocationName(位置,7);
}捕获(IOE异常){
e、 printStackTrace();
}
//位置存在
地址=地址列表。获取(0);
LatLng LatLng=新LatLng(address.getLatitude(),address.getLongitude());
map.addMarker(新的MarkerOptions().position(latLng.title)(“Find Pro”);
map.animateCamera(CameraUpdateFactory.newLatLng(latLng));
}否则{
addressSearch.setText(“位置不存在”);
}
}
感谢您的支持。

根据
geocoder的调用。getFromLocationName
可以抛出
illegargumentException
或返回空列表。这两种情况都会使你的应用程序崩溃。我打赌名单是空的

因此,请保护您的代码:

 if (addressList.size() > 0) {
      Address address = addressList.get(0);
      LatLng latLng = new LatLng(address.getLatitude(), address.getLongitude());
      map.addMarker(new MarkerOptions().position(latLng).title("Find Pro"));
      map.animateCamera(CameraUpdateFactory.newLatLng(latLng));
 }
根据调用
geocoder.getFromLocationName
可以抛出
IllegalArgumentException
或返回空列表。这两种情况都会使你的应用程序崩溃。我打赌名单是空的

因此,请保护您的代码:

 if (addressList.size() > 0) {
      Address address = addressList.get(0);
      LatLng latLng = new LatLng(address.getLatitude(), address.getLongitude());
      map.addMarker(new MarkerOptions().position(latLng).title("Find Pro"));
      map.animateCamera(CameraUpdateFactory.newLatLng(latLng));
 }

当您传递空值时,时间addressList返回0值,所以请在从addressList获取值之前设置IF条件

if (addressList.size() > 0) {
Address address = addressList.get(0);
}

当您传递空值时,时间addressList返回0值,所以请在从addressList获取值之前设置IF条件

if (addressList.size() > 0) {
Address address = addressList.get(0);
}

您节省了我的时间,谢谢您,先生,祝您幸福快乐。:)您节省了我的时间,谢谢您,先生,祝您幸福快乐。:)