Android - Dépannage
Dans cet article, vous apprendrez quelles sont les erreurs les plus courantes lors de l'implémentation de la bibliothèque Notificare pour Android.
Activer la journalisation des débogages
Il y a des moments où le niveau de journalisation par défaut n'est pas suffisant pour diagnostiquer les problèmes. Vous pouvez activer la journalisation des débogages en ajoutant ce qui suit dans le fichier AndroidManifest.xml
.
<?xml version="1.0" encoding="utf-8"?>
<manifest>
<application>
<meta-data
android:name="re.notifica.debug_logging_enabled"
android:value="true" />
</application>
</manifest>
Gestion de l'état de l'application
Les données importantes de l'application, telles que les informations sur l'appareil actuel et l'état des notifications push, sont stockées dans les préférences partagées. Il est essentiel d'éviter de supprimer manuellement ces propriétés ou fichiers, car cela peut avoir des effets secondaires inattendus, réinitialisant essentiellement votre application à un état partiellement neuf. Nous recommandons plutôt d'utiliser les fonctions appropriées qui correspondent à votre cas d'utilisation spécifique, telles que disableRemoteNotifications()
ou unlaunch()
.
Clés d'application mal placées
Lors de l'implémentation de Notificare, le fichier de configuration de la bibliothèque (celui déposé dans votre TransferBox) doit contenir l'Application ID
, la Application Key
et le Application Secret
. Dans Google Cloud Messaging/Firebase Cloud Messaging, il n'y a pas de séparation entre l'environnement de développement et de production, donc vous n'avez pas nécessairement besoin de créer des applications dans Notificare pour les deux environnements, bien que nous vous recommandions fortement d'avoir une application pour chaque environnement. Vous pouvez en savoir plus sur le fichier de configuration ici.
Erreurs GCM/FCM
Une erreur très courante est de confondre le SenderID
avec le Server Key
. Il y a une distinction claire entre les deux. Vous pouvez les trouver tous les deux dans la console de développeur Firebase, comme indiqué ici. Le SenderID
est inclus dans le fichier google-services.json
ajouté par Firebase à votre application comme expliqué ici. Le Server Key
est généré par Firebase et utilisé par l'équipe Actito pour finaliser la configuration, comme montré ici. Cela permettra à notre plateforme d'envoyer des notifications à votre application.
Dépendances/Permissions manquantes
L'une des erreurs les plus courantes lors de l'implémentation des notifications push est l'absence de certaines permissions dans votre fichier AndroidManifest.xml
. Certaines de ces permissions sont nécessaires au bon fonctionnement de la bibliothèque. Dans la plupart des cas, cela entraînera des crashs lors de la construction de votre application. Les permissions nécessaires sont ajoutées automatiquement par les différents modules, alors assurez-vous d'inclure toutes les dépendances dont votre application aura besoin. Vous pouvez lire plus sur les dépendances ici.
Plantage de l'application au démarrage
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.
Il arrive parfois que l'exception ci-dessus se produise. En général, cela est dû à une mauvaise configuration.
Assurez-vous d'exécuter votre application dans un émulateur compatible. Étant donné que toutes les images ne prennent pas en charge Google Play, l'exécution de l'application dans de tels émulateurs entraînera cette exception, car l'appareil ne dispose pas des capacités nécessaires.
Lorsque vous choisissez une image d'émulateur, sélectionnez-en une qui ressemble à celle-ci.
Problème connu avec Moshi dans Gradle 8.0
Nous sommes au courant d'un problème avec cette dépendance lorsqu'elle est construite avec la dernière version d'Android Studio, qui inclut Gradle 8.0 où R8 est activé par défaut. En attendant qu'ils fournissent une meilleure solution, vous devez ajouter la règle Proguard suivante à votre application :
-keep,allowobfuscation,allowshrinking class com.squareup.moshi.JsonAdapter