Dépannage : java.lang.ClassCastException: android.app.Application cannot be cast to … MyApplication

A l’exécution de votre projet dagger vous trouvez l’erreur java.lang.ClassCastException: android.app.Application cannot be cast to … MyApplication.

C’est une erreur qui nous vient très régulièrement même si on a l’habitude d’utiliser le framework d’injection de dépendance android.

Elle vient régulièrement et bien souvent on oublie la solution < lol >. On pense que ça peut arriver à beaucoup de développeur android qui utilise Dagger. Sa résolution est si simple qu’il est facile d’en oublier. ça mérite donc qu’on en parle.

Cause du problème dagger java.lang.ClassCastException: android.app.Application cannot be cast to …

Vous êtres en train de mettre en oeuvre un projet android avec Dagger.

On se sert d’une classe personnalisée qui hérite de la classe Application ( qu’on a nommé MyApplication ) pour faire l’injection de dépendance au niveau du framework android afin de mieux découpler notre code.

A l’exécution de votre projet vous trouvez l’erreur java.lang.ClassCastException: android.app.Application cannot be cast to … MyApplication .

A la compilation , le programme n’arrive pas à convertir la classe Application en votre classe personnalisée MyApplication ( ça peut être une autre classe qui hérite de Application ).

Solution

Pour résoudre le problème il faut attaquer le fichier Manifest de votre projet android. Il faut ajouter dans le tag <application> l’attribut android:name pour enrégistrer votre classe Application personnalisée.

<application
    ...
    android:name=".monpackage.MyApplication"
    ... >
    ...

</application>

Voilà, c’est tout. C’est aussi simple que ça. La prochaine fois que vous l’oublier ( y compris moi ) n’hésiter pas à juste taper l’erreur dans la recherche de google.

Tutoriels sur dagger

Si vous utilisez le framework d’injection de dépendance pour la première fois, nous vous recommandons de prendre vraiment votre temps.

La connaissance de Dagger nécessite la connaissance approfondi de ses concepts et le principe pour lequel il est fondé.

Les tutoriels de dagger peuvent être trouvé sur le site https://developer.android.com/ et si vous êtes pressé essayez ce codelab très pratique sur le site https://codelabs.developers.google.com/ .

 

Conclusion

Vous aimerez découvrir aussi Tutoriel: Comment installer angular dans ubuntu et 6 raisons pour lesquelles s’asseoir est une mauvaise habitude [ Mise à jour 2020].

Dépannage : java.lang.ClassCastException: android.app.Application cannot be cast to ... MyApplication
Moi en position de combat