Android Workmanager выдает исключение нулевого указателя после вызова метода Firebase onMessageReceived () - PullRequest
0 голосов
/ 17 июня 2020

Ниже приведены зависимости в Gradle сборки приложения

implementation 'com.google.firebase:firebase-messaging:20.0.1'
implementation "android.arch.work:work-runtime:1.0.1"

Ниже приведен класс FirebaseMessagingService

public class MyFirebaseMessagingService extends FirebaseMessagingService {

    @Override
    public void onNewToken(@NonNull String s) {
        super.onNewToken(s);
        Log.v("## onNewToken", "## onNewToken : "+s);
        //Toast.makeText(getApplicationContext(), "onNewToken : "+s, Toast.LENGTH_LONG).show();
    }


    @Override
    public void onMessageReceived(final RemoteMessage remoteMessage) {
        Log.v("## onMessageRecived CLD", "## onMessageReceived Called");

        Log.v("## onMessageRecivedData", "## onMessageReceived Data: "+remoteMessage.getData());


        Handler handler = new Handler(Looper.getMainLooper());
        handler.post(new Runnable() {
            public void run() {
                Toast.makeText(getApplicationContext(), "onMessagedReceived Called", Toast.LENGTH_LONG).show();
            }
        });

        PeriodicWorkRequest periodicWorkRequest = null;
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            periodicWorkRequest = new PeriodicWorkRequest.Builder(MyWorker.class, 15, TimeUnit.MINUTES)
                    .setConstraints(new Constraints.Builder().setRequiredNetworkType(NetworkType.CONNECTED).build())
                    .build();
        }
        WorkManager.getInstance().enqueueUniquePeriodicWork("SyncWorker", ExistingPeriodicWorkPolicy.KEEP, periodicWorkRequest);


    }
}

Ниже приведено исключение, которое возникает, когда onMessageReceivedCalled () в Android 6.0 (Marshmallow):

06-17 12:52:14.365 20954-21213/com.example.mytestapplication E/AndroidRuntime: FATAL EXCEPTION: Firebase-MyFirebaseMessagingService
    Process: com.example.mytestapplication, PID: 20954
    java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String androidx.work.WorkRequest.getStringId()' on a null object reference
        at androidx.work.impl.WorkContinuationImpl.<init>(WorkContinuationImpl.java:146)
        at androidx.work.impl.WorkContinuationImpl.<init>(WorkContinuationImpl.java:125)
        at androidx.work.impl.WorkManagerImpl.createWorkContinuationForUniquePeriodicWork(WorkManagerImpl.java:365)
        at androidx.work.impl.WorkManagerImpl.enqueueUniquePeriodicWork(WorkManagerImpl.java:344)
        at com.example.mytestapplication.MyFirebaseMessagingService.onMessageReceived(MyFirebaseMessagingService.java:56)
        at com.google.firebase.messaging.FirebaseMessagingService.zzc(com.google.firebase:firebase-messaging@@20.0.1:69)
        at com.google.firebase.messaging.zze.run(com.google.firebase:firebase-messaging@@20.0.1:2)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
        at com.google.android.gms.common.util.concurrent.zza.run(Unknown Source)
        at java.lang.Thread.run(Thread.java:818)
06-17 12:52:17.850 20954-20975/com.example.mytestapplication E/Surface: getSlotFromBufferLocked: unknown buffer: 0xb9f6c260

Я получаю исключение выше, когда onMessageReceived () вызывается в Android 6.0. Пожалуйста, помогите мне в этом. Заранее спасибо

...