2
votes

Flutter "Les valeurs de mappage ne sont pas autorisées ici" lors de l'obtention des packages

Je suis à peu près sûr qu'il s'agit d'une erreur avec la syntaxe YAML, mais je ne la trouve pas.

J'ai récemment ajouté une nouvelle police à mon projet (Manrope) et maintenant mes packages Flutter obtiennent renvoie une erreur. Avant d'ajouter la police, cela fonctionnait très bien.

Voici la partie pertinente de pubspec.yaml:

Error on line 65, column 12 of pubspec.yaml: Mapping values are not allowed here. Did you miss a colon earlier?
      fonts:
           ^

pub get failed (65)

Et voici le message d'erreur que j'obtiens:

flutter:

  uses-material-design: true

  assets:
  - assets/

  fonts:
  - family: Hanken Grotesk
    fonts:
    - asset: fonts/HankenGrotesk-Regular.otf
    - asset: fonts/HankenGrotesk-Bold.otf
      weight: 700
    - asset: fonts/HankenGrotesk-SemiBold.otf
      weight: 600
    - asset: fonts/HankenGrotesk-Medium.otf
      weight: 500
    - asset: fonts/HankenGrotesk-Light.otf
      weight: 300
    - asset: fonts/HankenGrotesk-ExtraLight.otf
      weight: 200

  - family: Manrope
    fonts:
    - asset: fonts/manrope-regular.otf
    - asset: fonts/manrope-bold.otf
      weight: 700
    - asset: fonts/manrope-semibold.otf
      weight: 600
    - asset: fonts/manrope-medium.otf
      weight: 500


0 commentaires

3 Réponses :


2
votes

Votre présentation de la partie pertinente rend difficile la localisation de la ligne 65, car l'échantillon n'est pas si long.

Je suis à peu près sûr que l'erreur ne se trouve pas dans la partie présentée. Comme l'erreur est causée par un indicateur de valeur (: ) dans la colonne numéro 12 et dans vos échantillons, l'indicateur après polices est en position 10.

Recherchez donc une ligne où fonts est en retrait de six positions au lieu des quatre dans l'exemple que vous avez inclus, et il y a l'erreur, probablement causée par cette sur-indentation.

(En général, il est préférable d'inclure le texte intégral du fichier problématique, si vous ne pouvez pas réduire la source du problème)


1 commentaires

en fait, je n'ai pas enregistré le document entre les modifications et par conséquent, les packages Flutter se référaient toujours à la version non actuelle de mon pubspec.yaml. Erreur très stupide, donc je vais simplement marquer votre réponse comme correcte car c'est un très bon conseil



0
votes

Une astuce intéressante est que JSON est un sous-ensemble de YAML, donc si jamais vous avez du mal à comprendre l'indentation ou la syntaxe YAML, remplacez-le simplement par JSON, et vous pouvez mélanger et faire correspondre.


0 commentaires

0
votes

Oui, vous avez raison. C'est un problème avec la syntaxe Yaml. En Yaml, le code est écrit sous forme d'objets comme en JSON donc nous devons faire attention à l'indentation du code chaque objet est de 2 espaces en retour à son enfant.

entrez la description de l'image ici


2 commentaires

Il serait préférable de mettre le code correct ici sous forme de texte plutôt que d'utiliser une capture d'écran.


Droite....! Mais la chose que je veux vous montrer est mise en évidence dans l'image ne peut pas être affichée avec le code de la hiérarchie d'indentation ....