Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'double android.location.Location.getLatitude()' on a null object reference at com.jstechnologies.helpinghands.utils.AddressUtils.getAddressFromGps(AddressUtils.java:44) at com.jstechnologies.helpinghands.ui.MyApp.getAddress(MyApp.java:30) at com.jstechnologies.helpinghands.ui.views.dashBoard.DashBoardViewModel.fetchAddress(DashBoardViewModel.java:65) at com.jstechnologies.helpinghands.ui.views.dashBoard.DashBoardActivity.onCreate(DashBoardActivity.java:64) at android.app.Activity.performCreate(Activity.java:7136) at android.app.Activity.performCreate(Activity.java:7127) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1272)
import androidx.core.app.ActivityCompat; import androidx.fragment.app.Fragment; import pub.devrel.easypermissions.AfterPermissionGranted; import pub.devrel.easypermissions.EasyPermissions; public class AddressUtils { private static final int RC_LOCATION_PERMISSION = 102; @AfterPermissionGranted(RC_LOCATION_PERMISSION) public Address getAddressFromGps(Context context) throws IOException { String[] perms = {Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION}; if (EasyPermissions.hasPermissions(context, perms)) { String provider; LocationManager locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE); Criteria criteria = new Criteria(); provider = locationManager.getBestProvider(criteria, false); @SuppressLint("MissingPermission") Location location = locationManager.getLastKnownLocation(provider); Geocoder geocoder= new Geocoder(context, Locale.getDefault()); List<android.location.Address> addresses = geocoder.getFromLocation(location.getLatitude(),location.getLongitude(), 1); Address address= new Address(); //ACCORDING TO LOGCAT THIS BELOW LINE HAS ERROR I GUESS address.setLat(location.getLatitude()); address.setLon(location.getLongitude()); address.setCountry(addresses.get(0).getCountryName()); address.setCity(addresses.get(0).getLocality()); address.setState(addresses.get(0).getAdminArea()); address.setPincode(addresses.get(0).getPostalCode()); address.setAddressLine1(addresses.get(0).getAddressLine(0)); address.setAddressLine2(addresses.get(0).getAddressLine(1)); return address; } else { EasyPermissions.requestPermissions((Activity) context,"Location permissions are required",RC_LOCATION_PERMISSION,perms); return null; } } }
Address
location
getLastKnownLocation()
null
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)