В Android studio пытаюсь использовать клиент поставщика услуг определения местоположения fused, но я получаю это сообщение об ошибке. Попытка создать конкретный класс и использовать его в основном

#android #android-activity

Вопрос:

Всплывающее сообщение об ошибке

Класс бетона:

 '''public class MarkedSpot extends AppCompatActivity {

private String owner;

private FusedLocationProviderClient fusedLocationProviderClient;
private LocationRequest locationRequest;

public MarkedSpot(){
    this.owner = "";

    locationRequest = new LocationRequest();
    locationRequest.setInterval(3000);
    locationRequest.setFastestInterval(1000);
    locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
    fusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(this);
    /* Above is where the exception is thrown, when assigning fusedLocationProviderClient */



    if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){

        if(ActivityCompat.checkSelfPermission(MarkedSpot.this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_DENIED){
            ActivityCompat.requestPermissions(MarkedSpot.this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 45);
        }
    }




}

@SuppressLint("MissingPermission")
public void updateGPS(){

    fusedLocationProviderClient.getLastLocation().addOnSuccessListener(MarkedSpot.this, new OnSuccessListener<Location>() {
        @Override
        public void onSuccess(Location location) {

        }
    });
}

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults){
    super.onRequestPermissionsResult(requestCode,permissions,grantResults);

    switch (requestCode){
        case 45:
        if(grantResults[0] == PackageManager.PERMISSION_GRANTED){
            updateGPS();
        }
        else{
            Toast.makeText(this,"This app requires permission", Toast.LENGTH_SHORT).show();
        }
    }
}
 

}»’

По какой-то причине мне трудно писать, это моя первая публикация, так что потерпите меня. Я не уверен, сколько еще мне придется продолжать эту текущую формулировку, потому что по какой-то причине она не позволит мне это сделать из-за «в основном кодирования».

Комментарии:

1. Этот класс расширяется Activity . Вы хотите создать Activity или вы хотите создать класс POJO?

2. кроме того, вы не можете просто опубликовать кучу кода. Ожидается, что вы опишете свою проблему и объясните, что вы сделали, а что не работает.

Ответ №1:

Код, который у вас есть в конструкторе, необходимо переместить onCreate() . Переопределите onCreate() и поместите код, который у вас есть в конструкторе, туда. Обязательно позвони super.onCreate() .

У вас не должно быть конструктора для an Activity , Android настраивает экземпляр, а затем вызывает onCreate() . Сделайте свою инициализацию там.