In this page you'll learn what are the most common mistakes when implementing the Notificare library for Android.
There are times when the default logging level is not sufficient to diagnose problems. You can enable debug logging by adding the following to the
<?xml version="1.0" encoding="utf-8"?> <manifest> <application> <meta-data android:name="re.notifica.debug_logging_enabled" android:value="true" /> </application> </manifest>
Important application data, such as current device information and push state, is stored in shared preferences.
It's essential to avoid manually removing these properties or files, as doing so can have unintended side effects, essentially resetting your application to a partially fresh state.
Instead, we recommended using the appropriate functions that align with your specific use-case, such as
When implementing Notificare, the library configuration file (located at
app/notificare-services.json) must contain the
Application Key and the
In Google Cloud Messaging/Firebase Cloud Messaging there is no separation between development and production environment, so you don't necessarily need to create applications in Notificare for both environments, although we strongly recommend that you have an application for each environment.
Please read more about the configuration file here.
A very common mistake it to confuse the
Server Key. There's a clear distinction between the two. They both can be found in the Firebase's Developer Console, like shown here. The
SenderID is included in the
google-services.json file added by Firebase to your app like explained here.
Server Key is generated by Firebase and uploaded to Notificare, like shown here. This will enable our platform to send notifications to your app.
One of the most common mistakes when implementing Notificare are missing permissions in your
Some of these permissions are required for the library to work. In most cases this will originate crashes when building your application.
Necessary permissions are automatically added by the various Notificare modules, so make sure you include all the dependencies your application will need. You can read more about the dependencies here.
For HMS to work it is important to set the necessary SHA-256 fingerprints for any environment that you will run the app in, including any development machine that you want to run a debug build from. These fingerprints can be found in your debug.keystore:
/> keytool -list -v -keystore ~/.android/debug.keystore
You can read more about setting up HMS here.
Notificare will require access to the Android Maps API in order to display Google Maps. These maps can be included in the content of a notification. Most common mistake when using Android Maps is to forget to get access to the API and to generate an Android Key. You can read more about creating an Android Maps V2 Key, here.
Fatal Exception: java.lang.RuntimeException: Unable to get provider re.notifica.NotificareConfigurationProvider: java.lang.IllegalStateException: No platform dependencies have been detected. Please include one of the platform-specific packages.
There are times when the exception above occurs. Typically, it's due to a misconfiguration.
- Ensure you include the appropriate peer dependencies —
notificare-[package]-gmsfor Google Play Services and
notificare-[package]-hmsfor Huawei Mobile Services.
- Ensure you run your application in a compatible emulator. Since not all images support Google Play, running the app in such emulators will cause the exception since the device doesn't have the necessary capabilities.
When choosing an emulator image, select one that looks like the following.
We are aware of an issue with this dependency when built with the latest Android Studio, which includes Gradle 8.0 where R8 is enabled by default. Basically, until they are able to provide a better solution, you need to add the following Proguard rule to your app:
-keep,allowobfuscation,allowshrinking class com.squareup.moshi.JsonAdapter