web-dev-qa-db-fra.com

ERREUR: Cela nécessite l'activation de l'expérience «non nullable».

Je joue avec des types non nullables et j'ai ajouté ceci à mon analysis_options.yaml:

analyzer:
  enable-experiment:
    - non-nullable

J'ai un générateur de code qui utilise l'extension de nullabilité. Le code visuel convient à mon code.

Maintenant, j'essaie de courir:

flutter packages pub run build_runner watch 

Je reçois ce message d'erreur:

[SEVERE] Failed to snapshot build script .Dart_tool/build/entrypoint/build.Dart.
This is likely caused by a misconfigured builder definition.
[SEVERE] xyz.Dart:95:7: Error: This requires the 'non-nullable' experiment to be enabled.Try enabling this experiment by adding it to the command line when compiling and running.

Comment puis-je passer --enable-experiment:non-nullable à flutter packages pub run?

La même chose se passe si je cours:

flutter build ios

Je reçois le message d'erreur:

  lib/main.Dart:61:26: Error: This requires the 'non-nullable' experiment to be enabled.

    Try enabling this experiment by adding it to the command line when compiling and running.

Donc, même question: comment puis-je passer --enable-experiment:non-nullable à flutter build?

23
user3612643

Une solution simple pour moi était de vous assurer que l'analyse_option.yaml est dans le dossier racine. Dans mon cas, c'était dans le dossier LIB et aucune des caractéristiques expérimentales n'a travaillé tant que je déplace le fichier dans le même dossier que PUBSPEC.YAML. Les autres choses pouvant arriver incluent les mises à jour qui rendent la fonctionnalité expérimentale ne nécessitant plus que la mise à jour de la dernière version de la chaîne principale de flutter peut être utile en plus de vérifier l'emplacement du fichier. Vous n'avez pas été en mesure d'obtenir la ligne de commande courir avec cette option.

0
Tommie C.

Selon ce que vous faites, c'est parfois aussi simple que de modifier l'environnement dans votre fichier PUBSPEC.YAML pour mettre à jour l'extrémité inférieure, c'est-à-dire changer une extrémité inférieure comme

environment:
sdk: ">=2.0.0 <3.0.0"

à

environment:
sdk: ">=2.6.0 <3.0.0"

ou alors

environment:
sdk: ">=2.7.0 <3.0.0"

Cela a fonctionné pour les différentes choses qui causent cette erreur (à l'aide de la syntaxe de diffusion dans la dernière version de Flutter et Dart le causera également), mais je n'ai pas besoin des environnements plus anciens.

0
Jason Simpson