requestLocationUpdates () в службе LocationUpdate выдает ошибку нулевого указателя

Приложение вылетает при запуске с исключением нулевого указателя. это происходит, когда разрешение на местоположение уже предоставлено. Однако этого не происходит, если разрешение на определение местоположения не предоставляется, а предоставляется только после запуска приложения.

public void requestLocationUpdates() {
    Log.i(TAG, "Requesting location updates");
    Utils.setRequestingLocationUpdates(this, true);
    startService(new Intent(getApplicationContext(), 
LocationUpdatesService.class));
    try {
        mFusedLocationClient.requestLocationUpdates(mLocationRequest,
                mLocationCallback, Looper.myLooper());
    } catch (SecurityException unlikely) {
        Utils.setRequestingLocationUpdates(this, false);
        Log.e(TAG, "Lost location permission. Could not request updates. " + 
unlikely);
    }
}

Ниже ошибка.

 java.lang.RuntimeException: Unable to start activity 
ComponentInfo{com.example.projectu/com.example.projectu.MainActivity}: 
java.lang.NullPointerException: Attempt to invoke virtual method 'void 
com.example.projectu.LocationUpdatesService.requestLocationUpdates()' on a 
null object reference
    at 
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2778)
    at 
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856)
    at android.app.ActivityThread.-wrap11(Unknown Source:0)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:164)
    at android.app.ActivityThread.main(ActivityThread.java:6494)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:440)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
     Caused by: java.lang.NullPointerException: Attempt to invoke virtual 
method 'void 
com.example.projectu.LocationUpdatesService.requestLocationUpdates()' on a 
null object reference
    at com.example.projectu.MainActivity.onStart(MainActivity.java:265)
    at 
android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1334)
    at android.app.Activity.performStart(Activity.java:7029)
    at 
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2741)

person Mahesh CS    schedule 18.06.2019    source источник
comment
Где вы инициализировали свой mFusedLocationClient?   -  person Bach Vu    schedule 18.06.2019
comment
Возможный дубликат Что такое исключение NullPointerException и как мне исправить?   -  person Bach Vu    schedule 18.06.2019
comment
вы пытаетесь получить доступ к обновлениям местоположения в фоновой службе?   -  person Shahzad Afridi    schedule 18.06.2019
comment
да, я пытаюсь получить доступ к обновлениям местоположения в фоновой службе   -  person Mahesh CS    schedule 18.06.2019


Ответы (1)


вы не инициализировали mFusedLocationClient и вызываете его mFusedLocationClient.requestLocationUpdates для нулевого объекта

person Neha Rathore    schedule 18.06.2019
comment
Я использую фоновую службу для обновления местоположения. он работает, когда разрешение предоставляется после запуска приложения. однако, когда разрешение уже предоставлено до запуска, приложение вылетает. - person Mahesh CS; 18.06.2019
comment
пожалуйста, обратитесь по этой ссылке. github.com/googlesamples/android-play-location/tree/master/ - person Mahesh CS; 18.06.2019
comment
@Neha Вы решили проблему. Если да, не могли бы вы взглянуть на это. stackoverflow .com / questions / 64459556 / - person Kumza Ion; 21.10.2020