parse-community / Parse-SDK-Android

The Android SDK for Parse Platform
https://parseplatform.org/
Other
1.88k stars 735 forks source link

Parse notification problem with flutter #1133

Closed gadgetreviews closed 2 years ago

gadgetreviews commented 2 years ago

New Issue Checklist

Issue Description

I am trying to use flutter, parse server and firebase cloud message to send notification to android devices. When I send test message from parse dashboard, android app crashes with following messages:

E/AndroidRuntime(12663): FATAL EXCEPTION: Firebase-Messaging-Intent-Handle
E/AndroidRuntime(12663): Process: com.company.app, PID: 12663
E/AndroidRuntime(12663): java.lang.NullPointerException: Attempt to invoke virtual method 'java.io.File com.parse.ParsePlugins.getFilesDir()' on a null object reference
E/AndroidRuntime(12663):    at com.parse.PushRouter.getInstance(PushRouter.java:49)
E/AndroidRuntime(12663):    at com.parse.fcm.ParseFirebaseMessagingService.onMessageReceived(ParseFirebaseMessagingService.java:39)
E/AndroidRuntime(12663):    at com.google.firebase.messaging.FirebaseMessagingService.dispatchMessage(com.google.firebase:firebase-messaging@@22.0.0:13)
E/AndroidRuntime(12663):    at com.google.firebase.messaging.FirebaseMessagingService.passMessageIntentToSdk(com.google.firebase:firebase-messaging@@22.0.0:8)
E/AndroidRuntime(12663):    at com.google.firebase.messaging.FirebaseMessagingService.handleMessageIntent(com.google.firebase:firebase-messaging@@22.0.0:3)
E/AndroidRuntime(12663):    at com.google.firebase.messaging.FirebaseMessagingService.handleIntent(com.google.firebase:firebase-messaging@@22.0.0:3)
E/AndroidRuntime(12663):    at com.google.firebase.messaging.EnhancedIntentService.lambda$processIntent$0$EnhancedIntentService(com.google.firebase:firebase-messaging@@22.0.0:1)
E/AndroidRuntime(12663):    at com.google.firebase.messaging.EnhancedIntentService$$Lambda$0.run(Unknown Source:6)
E/AndroidRuntime(12663):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
E/AndroidRuntime(12663):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
E/AndroidRuntime(12663):    at com.google.android.gms.common.util.concurrent.zza.run(com.google.android.gms:play-services-basement@@17.6.0:2)
E/AndroidRuntime(12663):    at java.lang.Thread.run(Thread.java:919)
I/Process (12663): Sending signal. PID: 12663 SIG: 9

Steps to reproduce

Added these lines to app/build.gradle:

apply plugin: 'com.google.gms.google-services'
...
implementation "com.github.parse-community.Parse-SDK-Android:fcm:1.26.0"

Added these lines to android/build.gradle:

classpath 'com.google.gms:google-services:4.3.8'
...
maven { url "https://jitpack.io" }

Added these lines to AndroidManifest.xml

        <service
            android:name="com.parse.fcm.ParseFirebaseInstanceIdService"
            android:exported="true">
            <intent-filter>
                <action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
            </intent-filter>
        </service>

        <service
            android:name="com.parse.fcm.ParseFirebaseMessagingService">
            <intent-filter>
                <action android:name="com.google.firebase.MESSAGING_EVENT"/>
            </intent-filter>
        </service>

        <receiver
            android:name="com.parse.ParsePushBroadcastReceiver"
            android:exported="false">
            <intent-filter>
                <action android:name="com.parse.push.intent.RECEIVE" />
                <action android:name="com.parse.push.intent.DELETE" />
                <action android:name="com.parse.push.intent.OPEN" />
            </intent-filter>
        </receiver>

If I remove this part, app will work without notification messages. Parse.Push.send command from cloud code send data only if I remove this part. If I add this part app will crash:

        <service
            android:name="com.parse.fcm.ParseFirebaseMessagingService">
            <intent-filter>
                <action android:name="com.google.firebase.MESSAGING_EVENT"/>
            </intent-filter>
        </service>

But If I add that part, if I send a notification, app will crash.

Actual Outcome

App crashes with this error:

E/AndroidRuntime(12663): FATAL EXCEPTION: Firebase-Messaging-Intent-Handle
E/AndroidRuntime(12663): Process: com.company.app, PID: 12663
E/AndroidRuntime(12663): java.lang.NullPointerException: Attempt to invoke virtual method 'java.io.File com.parse.ParsePlugins.getFilesDir()' on a null object reference
E/AndroidRuntime(12663):    at com.parse.PushRouter.getInstance(PushRouter.java:49)
E/AndroidRuntime(12663):    at com.parse.fcm.ParseFirebaseMessagingService.onMessageReceived(ParseFirebaseMessagingService.java:39)
E/AndroidRuntime(12663):    at com.google.firebase.messaging.FirebaseMessagingService.dispatchMessage(com.google.firebase:firebase-messaging@@22.0.0:13)
E/AndroidRuntime(12663):    at com.google.firebase.messaging.FirebaseMessagingService.passMessageIntentToSdk(com.google.firebase:firebase-messaging@@22.0.0:8)
E/AndroidRuntime(12663):    at com.google.firebase.messaging.FirebaseMessagingService.handleMessageIntent(com.google.firebase:firebase-messaging@@22.0.0:3)
E/AndroidRuntime(12663):    at com.google.firebase.messaging.FirebaseMessagingService.handleIntent(com.google.firebase:firebase-messaging@@22.0.0:3)
E/AndroidRuntime(12663):    at com.google.firebase.messaging.EnhancedIntentService.lambda$processIntent$0$EnhancedIntentService(com.google.firebase:firebase-messaging@@22.0.0:1)
E/AndroidRuntime(12663):    at com.google.firebase.messaging.EnhancedIntentService$$Lambda$0.run(Unknown Source:6)
E/AndroidRuntime(12663):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
E/AndroidRuntime(12663):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
E/AndroidRuntime(12663):    at com.google.android.gms.common.util.concurrent.zza.run(com.google.android.gms:play-services-basement@@17.6.0:2)
E/AndroidRuntime(12663):    at java.lang.Thread.run(Thread.java:919)
I/Process (12663): Sending signal. PID: 12663 SIG: 9

Expected Outcome

Notification should be sent.

Pull Request

Environment

Parse Flutter SDK

Server

Database

Logs

E/AndroidRuntime(12663): FATAL EXCEPTION: Firebase-Messaging-Intent-Handle
E/AndroidRuntime(12663): Process: com.company.app, PID: 12663
E/AndroidRuntime(12663): java.lang.NullPointerException: Attempt to invoke virtual method 'java.io.File com.parse.ParsePlugins.getFilesDir()' on a null object reference
E/AndroidRuntime(12663):    at com.parse.PushRouter.getInstance(PushRouter.java:49)
E/AndroidRuntime(12663):    at com.parse.fcm.ParseFirebaseMessagingService.onMessageReceived(ParseFirebaseMessagingService.java:39)
E/AndroidRuntime(12663):    at com.google.firebase.messaging.FirebaseMessagingService.dispatchMessage(com.google.firebase:firebase-messaging@@22.0.0:13)
E/AndroidRuntime(12663):    at com.google.firebase.messaging.FirebaseMessagingService.passMessageIntentToSdk(com.google.firebase:firebase-messaging@@22.0.0:8)
E/AndroidRuntime(12663):    at com.google.firebase.messaging.FirebaseMessagingService.handleMessageIntent(com.google.firebase:firebase-messaging@@22.0.0:3)
E/AndroidRuntime(12663):    at com.google.firebase.messaging.FirebaseMessagingService.handleIntent(com.google.firebase:firebase-messaging@@22.0.0:3)
E/AndroidRuntime(12663):    at com.google.firebase.messaging.EnhancedIntentService.lambda$processIntent$0$EnhancedIntentService(com.google.firebase:firebase-messaging@@22.0.0:1)
E/AndroidRuntime(12663):    at com.google.firebase.messaging.EnhancedIntentService$$Lambda$0.run(Unknown Source:6)
E/AndroidRuntime(12663):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
E/AndroidRuntime(12663):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
E/AndroidRuntime(12663):    at com.google.android.gms.common.util.concurrent.zza.run(com.google.android.gms:play-services-basement@@17.6.0:2)
E/AndroidRuntime(12663):    at java.lang.Thread.run(Thread.java:919)
I/Process (12663): Sending signal. PID: 12663 SIG: 9
RodrigoSMarques commented 2 years ago

Open a issue in Parse-SDK Android.

I didn't identify any relationship between the error and Flutter

mtrezza commented 2 years ago

Transferring this issue to the Parse Android SDK.

parse-github-assistant[bot] commented 2 years ago

Thanks for opening this issue!

mtrezza commented 2 years ago

I'm closing this as it does not seem to be a Parse Android SDK issue.

Feel free to comment if you have any questions and we can re-open this issue.