Veuillez activer Javascript pour voir le contenu

[Flutter] Exception en production avec flutter_local_notifications

· ☕ 1 min de lecture
[ERROR:flutter/shell/platform/android/platform_view_android_jni.cc(39)] java.lang.AssertionError: AssertionError (GSON 2.8.5): java.lang.NoSuchFieldException: DrawableResource
06-13 23:55:46.181 30973 30973 E flutter : at d.d.d.q.a(:101)
06-13 23:55:46.181 30973 30973 E flutter : at d.d.d.q.a(:88)
06-13 23:55:46.181 30973 30973 E flutter : at d.d.d.q.a(:86)
06-13 23:55:46.181 30973 30973 E flutter : at com.dexterous.flutterlocalnotifications.d.e(:7)
06-13 23:55:46.181 30973 30973 E flutter : at com.dexterous.flutterlocalnotifications.d.a(:27)
06-13 23:55:46.181 30973 30973 E flutter : at com.dexterous.flutterlocalnotifications.d.a(:175)…

J’ai eu la malchance de tomber sur cette exception qui ne se produit QUE sur les applications sur le store (internal test/beta/qa/prod… peu importe).

La raison est simple, le package flutter_local_notifications nécessite d’outrepasser les optimisations ProGuard sur son namespace.
La solution est donc d’indiquer cette contrainte à ProGuard.
Pour cela il suffit d’ajoutez dans le fichier android/app/proguard-rules.pro la ligne suivante :

1
-keep class com.dexterous.** { *; }

voilà tout simplement!

Faire attention au .gitignore: pour l’anecdote j’ai rencontré cette exception car le fichier ProGuard n’était pas sous contrôle de source à cause de la configuration du .gitignore, ce qui a empêché le serveur de build de réaliser des packages valides.

Sources

Documentation

Partager sur

Jérémy Landon
ÉCRIT PAR
Jérémy Landon
Freelance / Author / Speaker / Open source contributor

Contenu de cette page