我正在使用下面的代码获取经度和纬度值的当前位置
LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
Criteria criteria = new Criteria();
assert locationManager != null;
Location location1 = locationManager.getLastKnownLocation(Objects.requireNonNull(locationManager.getBestProvider(criteria, true)));
Geocoder geocoder=new Geocoder(getBaseContext(), Locale.getDefault());
List<Address> addresses;
try {
addresses=geocoder.getFromLocation(Objects.requireNonNull(location1).getLatitude(),Objects.requireNonNull(location1).getLongitude(),1);
if(addresses.size()>0){
location.setText(addresses.get(0).getLocality());
}
} catch (IOException e) {
e.printStackTrace();
}
当我运行该应用程序时,它崩溃了,当我检查调试器时,它显示了
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Class java.lang.Object.getClass()' on a null object reference
这个错误是在try方法打开方括号之后的一行,我试图避免使用可用的折射器获取空值,但是我的应用仍然崩溃。对于如何克服这个问题,一些帮助将是很好的。 谢谢