mFusedLocationClient.getLastLocation().addOnCompleteListener(
new OnCompleteListener<Location>() {}
В вашем коде есть слушатель. Даже если вы поместите сначала getLastLocation (), нет гарантии, что строки города и страны будут иметь присвоенное значение.
public void onComplete(@NonNull Task<Location> task)
Вышеупомянутый метод будет выполнен только после завершения соответствующей задачи.
Любой код, который вы написали ниже, getLastLocation () будет выполняться без обязательного запуска onCompleted ().
Таким образом, вы получаете null вместо фактического значения в textViews.
Чтобы этого избежать, вы необходимо обновить текстовые представления внутри метода OnComplete ().
Если вы все еще хотите обновить выход текстовых представлений из getLastLocation (), добавьте задержку для установки значения textView
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
cityText .setText(country);
countryText .setText(city);
}
},5000); //textviews will be set value after 5 seconds, assuming that OnComplete() inside getLastLocation() will be triggered within 5 seconds.