Value cannot be null. Parameter name: clrNamespace

Lors de la compilation d’une page Xamarin.Forms, il peut arriver que l’on tombe sur des messages d’erreurs énigmatiques.

Exemple : Value cannot be null. Parameter name: clrNamespace

Bien évidemment, la ligne de code Xaml qui pose problème n’est pas mise en évidence par le designer... les choses seraient bien trop simples.

Pour s’en sortir, il faut commencer par déterminer ce que l’on cherche. Dans le cas du "Value cannot be null", il ne faut pas chercher une valeur null ou vide, mais un élément manquant qui ne permettrait pas au compilateur de savoir ce qu’une portion de Xaml signifie. Dans le cas présent, le message qui accompagne l’erreur indique "Parameter name: clrNamespace". Cela signifie que le compilateur pense qu’il manque un namespace.

Exemple de code qui pourrait posé problème si l’on oublie de déclaré le namespace pour le préfix "strings":

<Label Text="{x:Static strings:Resources.Biography}" />

Pour corriger le tir, il suffit donc d’ajouter la déclaration sur le nœud de la page :

xmlns:strings="clr-namespace:MonPorjet.Strings"

Moralité : Avec le designer Xamarin, il faut oublier ses habitudes faire attention au sens "global" des messages d’erreusr

Jérémy Jeanson

Comments

You have to be logged in to comment this post.