Несколько вещей, которые могут помочь.
Во-первых, попробуйте использовать FusedLocationProviderClient , чтобы получить местоположение.
FusedLocationProviderClient fusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(context);
fusedLocationProviderClient.getLastLocation()
.addOnSuccessListener(new OnSuccessListener<Location>() {
@Override
public void onSuccess(Location location) {
if(location != null) {
double latitude = location.getLatitude();
double longitude = location.getLongitude();
Log.i(TAG, "Latitude: " + latitude + " | Longitude: " + longitude);
} else {
Log.e(TAG, "Unable to retrieve location");
}
}
});
Во-вторых, у меня возникла эта проблема, когда ятестировал на эмуляторе, и он всегда вызывал одно и то же исключение, о котором вы упоминали.Чтобы исправить это, я должен был зайти в приложение Google Maps на моем эмуляторе и позволить ему точно определить мое местоположение, нажав на круговую кнопку цели.Я не уверен, почему это сработало (думаю, потому, что это спасло мое местоположение, чего раньше он не мог сделать).