Прежде всего, вам нужно обернуть ваш вызов в LocationManager блоком try / catch и захватить любое исключение, которое вы получаете от вызова. Посмотрите ниже. Это сделает вызов и поймает исключение. Идите оттуда, как только узнаете, почему он возвращается NULL. По любой причине у вас всегда будут проблемы с получением географических точек местоположения с помощью эмулятора. Кроме того, Google не всегда возвращает гео-точки, поэтому в эмуляторе я зациклился, пока не вернулся. Не очень хорошая идея
try{
Location lastKnownLocation = locationManager.getLastKnownLocation(locationManager.getBestProvider(criteria, true));
}
catch(IOException e) {
Log.e("IOException", e.getMessage());
//Toaster on high-----------------//
Context context = getApplicationContext();
CharSequence text = "IOException: " + e.getMessage();
int dur = Toast.LENGTH_LONG;
Toast.makeText(context, text, dur).show();