I am trying to setup push notifications within a nativescript application. I have successfully configured and setup the FCM and obtain a registration token which we use within the register device call but we get errors
Backendless Version (3.x / 5.x, Online / Managed / Pro )
Client SDK (REST / Android / Objective-C / Swift / JS )
- Register device for push notifications
Backendless.Messaging.registerDevice throws “Device is not defined. Please, run the Backendless.setupDevice”
However if I try to call Backendless.setupDevice with following device properties
"The sync methods of the Backendless API are deprecated and will be removed in the nearest future.
Please, use async methods instead.
“message”: “unknown error occurred”,
are you sure you get this error when you call
Because it does not have a wrapper that would warn about using of deprecated approach.
I just checked your usecase and I didn’t get the behavior you described.
Please try again in this order and let us know if the error persists:
Backendless.Messaging.registerDevice(/* your args here: deviceToken, channels, expiration */)
Thanks for prompt response.
You are right , it is not the setupDevice but the registerDevice
I am calling it only with device token argument (I understand the other are optional)
and I get
JS: The sync methods of the Backendless API are deprecated and will be removed in the nearest future.
JS: Please, use async methods instead.
I didn’t find anything in the documentation about how to make this an async call though
Now I was able to reproduce that issue, thank you for pointing this out!
I will fix it and release it soon, but for now I can suggest a temporary fix - add an empty array as the second argument:
This will not affect the logic of work.
I will inform you here when a new version of SDK with this fix is released.
Thanks & Regards,
Thanks, I tried your suggestion and I now receive the registration id.
But when I send the push notification from backendless console I get this:
System.err: java.lang.RuntimeException: Unable to instantiate receiver com.backendless.push.BackendlessBroadcastReceiver: java.lang.ClassNotFoundException: Didn’t find class “com.backendless.push.BackendlessBroadcastReceiver” on path: DexPathList[[zip file “/data/app/com.leadingedge.bikecare-1/base.apk”],nativeLibraryDirectories=[/data/app/com.leadingedge.bikecare-1/lib/arm64, /data/app/com.leadingedge.bikecare-1/base.apk!/lib/arm64-v8a, /system/lib64, /vendor/lib64, /system/vendor/lib64, /product/lib64]]
Not sure if I should open a new thread but I guess this is related to having the backendless Android SDK/JAR file added to my nativescript application?
Yes, this is related to Android SDK.
Have you configured everything using this documentation?
The programm cannot find the class from androd sdk, which means that it is included incorrectly.
Yes, my app uses gradle and this is the dependency sections
** implementation ‘com.google.firebase:firebase-core:17.0.1’**
** implementation ‘com.google.firebase:firebase-messaging:19.0.1’**
** implementation group: ‘com.backendless’, name: ‘backendless’, version: ‘5.3.0’ **
** implementation ‘com.android.support:multidex:1.0.3’**
And the JAR is added in my App_Resource/Android/libs folder but during compile I get lots of duplicate class errors:
Duplicate class weborb.writer.specialized.TypedResultSet found in modules jetified-backendless-5.3.0.jar (backendless-5.3.0.jar) and jetified-backendless-5.3.0.jar (com.backendless:backendless:5.3.0)
** Duplicate class weborb.writer.specialized.TypedResultSetWriter found in modules jetified-backendless-5.3.0.jar (backendless-5.3.0.jar) and jetified-backendless-5.3.0.jar (com.backendless:backendless:5.3.0)**
And it just ocurred to me that this might come from the fact that I have the JS SDK also added to the application?
It appears that the backendless dependency is referenced twice. Could you please verify that?
Thanks for the hint, indeed something was not right with they way I did it
I will leave my solution here in case someone else has the same issue
I have placed the backendless-5.3.0.jar file into platforms\android\app\libs and in my app\App_Resources\Android\app.gradle
I am now able to receive push notifications.
Thank you for all your help