Ce problème se produit lorsque vous essayez la commande suivante:
Flutter Pub Run build_runner build - Delete-Conflicting-sorts
Le message d'erreur:
xxx
pubSpec.yaml:
[â] Flutter (Channel stable, 2.0.0, on Microsoft Windows [Version > 10.0.19042.844], locale en-US) > ⢠Flutter version 2.0.0 at C:\flutter > ⢠Framework revision 60bd88df91 (22 hours ago), 2021-03-03 09:13:17 -0800 > ⢠Engine revision 40441def69 > ⢠Dart version 2.12.0
Ce sont les versions actuelles de flottement et de fléchettes:
dependencies: json_annotation: ^4.0.0 flutter: sdk: flutter ... dev_dependencies: build_runner: ^1.11.5 json_serializable: ^4.0.2 flutter_test: sdk: flutter
6 Réponses :
J'ai découvert que J'ai donc rétrogradé les deux packages: et et ils fonctionnent à nouveau correctement correctement . json_serializable> = 4.0.0
dépend de json_annotation> = 4.0.0
et le
json_annotation: ^ 4.0.0
inclut Null Safety
mais json_serializable: ^ 4.0.2
ne fait pas , donc L'erreur se produit. json_serializable: 3.5.1
json_annotation: 3.1.1
Je suis coincé dans une étrange dépendance en enfer. dépend à la fois de build_runner 1.12.2 et json_serializable 3.5.1, la résolution de la version a échoué.
Utilisez Build_Runner: ^ 1.10.9
Utilisez JSON_annotation: ^ 3.0.1, build_runner: ^ 1.0.0, JSON_Serializable: ^ 3.3.0 Cela fonctionne pour moi.
Je pense que tout cela dépend si vous avez l'intention de mettre à niveau votre projet global pour activer Sécurité nul ou ne pas. Si vous souhaitez utiliser les derniers packages json_serializable (qui ont permis une sécurité nul), vous aurez besoin de le spécifier en tant que tel dans votre environnement.
dans votre pubspec.yaml, si vous activez la sécurité nul avec les éléments suivants:
environment: sdk: ">=2.12.0 <3.0.0"
... alors le dernier json_serializable devrait fonctionner sans problème.
Référence: en coulisses: les contraintes sdk
chances, votre environnement "sdk" est quelque chose Moins de 2.12.0 s'ils vous donnent cette erreur.
Cependant, si vous n'êtes pas intéressé à mettre à jour la sécurité nul, vous devrez probablement garder votre JSON_Serializable Les packages ont été rétrogradés comme vous l'avez mentionné.
J'ai eu le même problème et le résolvez avec des étapes ci-dessous:
set sdk: '> = 2.12.0 <3.0.0'
Modifier la version de json_serializable
et json_annotation
à ^ 4.0.0
(pas 4.1.0)
Essayez de définir:
sdk: '>=2.12.0 <3.0.0'
Mettez à niveau votre fichier PubSpec,
flutter pub run build_runner build --delete-conflicting-outputs
Après la mise à niveau des packages pour exécuter cette commande:
sdk: '>=2.12.0 <3.0.0' json_annotation: ^4.0.1 json_serializable: ^4.1.0 build_runner: ^1.12.2
Dans votre fichier pubspe.yaml
, la version SDK inférieure doit être > = 2.12
.
flutter pub get flutter pub run build_runner build --delete-conflicting-outputs
Utilisez les versions suivantes ( Tous sont nuls-sûrs)
json_annotation: ^4.0.1 json_serializable: ^4.1.2 build_runner: ^2.0.3
Après cela, exécutez:
environment: sdk: '>=2.12.0 <3.0.0'