<p>dartdoc a échoué : NoSuchMethodError : l'élément getter a été appelé sur null</p>

Créé le 29 mars 2021  ·  15Commentaires  ·  Source: dart-lang/dartdoc

Lorsque vous essayez d'exécuter dartdoc dans notre bibliothèque syncfusion_flutter_charts, la tâche de génération dartdoc échoue avec un message d'erreur interne dartdoc. Cela ne se produit pas non plus avec les anciennes versions de dartdoc (autres que 0.40.0). J'ai joint le journal des erreurs ci-dessous.

used dartdoc version : 0.40.0

flutter_charts_dartdoc.txt

```Documentation de syncfusion_flutter_charts...

dartdoc a échoué : NoSuchMethodError : l'élément getter a été appelé sur null.
Récepteur : nul
J'ai essayé d'appeler : élément

0 Object.noSuchMethod (dart:core-patch/object_patch.dart:54:5)

1 nouveau ElementType.from (package:dartdoc/src/element_type.dart:29:11)

2 nouvelles extensions (package:dartdoc/src/model/extension.dart:21:21)

3 ModelElement._from (package:dartdoc/src/model/model_element.dart:330:14)

4 nouveaux ModelElement.from (package:dartdoc/src/model/model_element.dart:278:40)

5 Bibliothèque.extensions.(package:dartdoc/src/model/library.dart:202:34)

6 MappedIterator.moveNext (dart:_internal/iterable.dart:389:20)

7 nouveaux _GrowableList._ofOther (dart:core-patch/growable_array.dart:198:26)

8 nouvelles _List._ofOther (dart:core-patch/array.dart:106:43)

9 nouveaux _List.of (dart:core-patch/array.dart:57:18)

10 nouveaux List.of (dart:core-patch/array_patch.dart:52:20)

11 Iterable.toList (dart:core/iterable.dart:366:12)

12 Library.extensions (package:dartdoc/src/model/library.dart:203:10)

13 Library.modelElementsMap (package:dartdoc/src/model/library.dart:607:17)

14 Library.allModelElements (package:dartdoc/src/model/library.dart:647:33)

15 PackageGraph.allModelElements..(package:dartdoc/src/model/package_graph.dart:915:48)

16 SetMixin.forEach (dart:collection/set.dart:142:30)

17 PackageGraph.allModelElements.(package:dartdoc/src/model/package_graph.dart:914:18)

18 SetMixin.forEach (dart:collection/set.dart:142:30)

19 PackageGraph.allModelElements (package:dartdoc/src/model/package_graph.dart:908:52)

20 PackageGraph.precacheLocalDocs.sync_op (package:dartdoc/src/model/package_graph.dart:121:19)

21 _SyncIterator.moveNext (dart:core-patch/core_patch.dart:181:26)

22 Future.wait (dart:async/future.dart:393:26)

23 PackageGraph.initializePackageGraph (package:dartdoc/src/model/package_graph.dart:73:18)

24 PubPackageBuilder.buildPackageGraph (package:dartdoc/src/model/package_builder.dart:72:20)

25 Dartdoc.generateDocsBase (package:dartdoc/dartdoc.dart:182:20)

26 Dartdoc.generateDocs (package:dartdoc/dartdoc.dart:223:28)

27 Dartdoc.executeGuarded.(package:dartdoc/dartdoc.dart:500:9)

Code renvoyé par le programme : 255

P1 bug

Commentaire le plus utile

exécuter pub global run dartdoc:dartdoc au lieu de seulement dartdoc également corrigé pour moi. Merci tout le monde.

Tous les 15 commentaires

Je ne parviens pas à reproduire ce problème localement avec la v0.40.0 ou la nouvelle version v0.41.0.

Pouvez-vous s'il vous plaît spécifier la version de Flutter que vous utilisez et confirmer que vous avez exécuté "pub upgrade" si vous utilisez un checkout local de dartdoc ?

@Dinesh-DK Se fermera dans quelques jours à moins que je n'aie de nouvelles, en supposant que cela soit lié à des bogues précédemment fermés sur ce sujet. C'est le premier rapport de ce problème avec 0.40.0 cependant, donc j'aimerais être sûr avant de le faire.

Je rencontre le même problème. Aujourd'hui, c'est la première fois que j'utilise Dartdoc. Je l'ai utilisé sur deux programmes, un programme Dart cli et un programme Flutter. Le programme cli a fonctionné sans problème, mais je vois la même erreur que Dinesh-DK lorsque j'essaie de l'utiliser avec le programme flutter.

J'ai même créé une nouvelle application de flutter et l'erreur s'est toujours produite. J'utilise Flutter 2.0.3. J'ai aussi vérifié que j'utilise 0.41 de dartdoc

Résumé du docteur (pour voir tous les détails, exécutez flutter doctor -v) :
[√] Flutter (Channel stable, 2.0.3, sur Microsoft Windows [Version 10.0.18363.1440], locale en-US)
[√] Chaîne d'outils Android - développer pour les appareils Android (Android SDK version 29.0.3)
[√] Chrome - développer pour le Web
[√] Visual Studio - développer pour Windows (Visual Studio Community 2019 16.9.2)
[√] Android Studio (version 4.0)
[√] Code VS (version 1.55.0)
[√] Appareil connecté (2 disponibles)

C'est très étrange, d'autant plus que pub.dev semble très bien traiter les paquets flottants. Cela a peut-être quelque chose à voir avec Windows. va enquêter.

Merci. Si vous voulez/avez besoin que j'essaye quoi que ce soit, n'hésitez pas à demander.

Revenant à cela, j'ai essayé plusieurs façons de reproduire cela sur des plates-formes non Windows, mais j'ai échoué. Je travaille sur l'accès/la configuration d'une plate-forme de développement Dart sur un système Windows pour reproduire le problème.

Quelques questions que j'ai :

  • Est-ce que ce problème est rencontré par quelqu'un _pas_ sur Windows ?
  • Est-ce que flutter analyze revient sans erreur sur votre projet ? C'est une condition préalable au bon fonctionnement de dartdoc. Il revient sans erreur pour moi lors de la synchronisation, mais encore une fois, ce package fonctionne bien pour moi, pas encore essayé sous Windows.

Un membre de mon équipe rencontre actuellement ce problème également sur l'un des packages que je maintiens. Tant dans le CI/CD (Linux) que localement (Mac).

Utilisation de dartdoc v0.39.0. Et cela ne se produit que sur notre package d'interface Web nouvellement créé. Après avoir examiné notre propre code, je n'ai rien trouvé d'étrange quant à la raison pour laquelle cela pourrait se produire, mais cela pourrait donner quelques indications ?

La source pertinente peut être trouvée ici

avoir reproduit
Linux
dartdoc version: 0.39.0

[✓] Flutter (Channel stable, 2.0.4, on Linux, locale ru_RU.UTF-8)
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)

Étapes à reproduire :

  1. Exécuter Linux
  2. flutter create dartdoc_bug_test
  3. cd dartdoc_bug_test
  4. dartdoc
  5. C'est ça
Documenting dartdoc_bug_test...
\
dartdoc failed: NoSuchMethodError: The getter 'element' was called on null.
Receiver: null
Tried calling: element
#0      Object.noSuchMethod (dart:core-patch/object_patch.dart:54:5)
#1      new ElementType.from (package:dartdoc/src/element_type.dart:29:11)
#2      new Extension (package:dartdoc/src/model/extension.dart:21:21)
#3      ModelElement._from (package:dartdoc/src/model/model_element.dart:330:14)
#4      new ModelElement.from (package:dartdoc/src/model/model_element.dart:278:40)
#5      Library.extensions.<anonymous closure> (package:dartdoc/src/model/library.dart:202:34)
#6      MappedIterator.moveNext (dart:_internal/iterable.dart:389:20)
#7      new _GrowableList._ofOther (dart:core-patch/growable_array.dart:198:26)
#8      new _List._ofOther (dart:core-patch/array.dart:106:43)
#9      new _List.of (dart:core-patch/array.dart:57:18)
#10     new List.of (dart:core-patch/array_patch.dart:52:20)
#11     Iterable.toList (dart:core/iterable.dart:366:12)
#12     Library.extensions (package:dartdoc/src/model/library.dart:203:10)
#13     Library.modelElementsMap (package:dartdoc/src/model/library.dart:607:17)
#14     Library.allModelElements (package:dartdoc/src/model/library.dart:647:33)
#15     PackageGraph.allModelElements.<anonymous closure>.<anonymous closure> (package:dartdoc/src/model/package_graph.dart:915:48)
#16     SetMixin.forEach (dart:collection/set.dart:142:30)
#17     PackageGraph.allModelElements.<anonymous closure> (package:dartdoc/src/model/package_graph.dart:914:18)
#18     SetMixin.forEach (dart:collection/set.dart:142:30)
#19     PackageGraph.allModelElements (package:dartdoc/src/model/package_graph.dart:908:52)
#20     PackageGraph.precacheLocalDocs.sync_op (package:dartdoc/src/model/package_graph.dart:121:19)
#21     _SyncIterator.moveNext (dart:core-patch/core_patch.dart:181:26)
#22     Future.wait (dart:async/future.dart:393:26)
#23     PackageGraph.initializePackageGraph (package:dartdoc/src/model/package_graph.dart:73:18)
#24     PubPackageBuilder.buildPackageGraph (package:dartdoc/src/model/package_builder.dart:72:20)
<asynchronous suspension>
#25     Dartdoc.generateDocsBase (package:dartdoc/dartdoc.dart:182:20)
<asynchronous suspension>
#26     Dartdoc.generateDocs (package:dartdoc/dartdoc.dart:223:28)
<asynchronous suspension>
#27     Dartdoc.executeGuarded.<anonymous closure> (package:dartdoc/dartdoc.dart:500:9)
<asynchronous suspension>

Corrigé en mettant à jour vers dartdoc version: 0.40.0

Je ne peux pas reproduire ce problème sur 0.40.0 ou supérieur, mais je peux le reproduire de manière fiable sur 0.39.0 -- c'est un bogue connu avec cette version. Pour toute personne signalant ce problème, avez-vous vérifié que votre PATH est correct et pointe vers un dartdoc qui signale une valeur supérieure à 0,39.0 ?

Je vais ajouter une sortie de débogage sur les exceptions afin qu'il soit clair quelle version est exécutée pour les futurs plantages - c'est particulièrement déroutant car les gens peuvent utiliser pub global activate dartdoc ainsi que le dartdoc d'un Dart SDK ou Flutter Installation du SDK.

Je suis le membre de l'équipe mentionné par @wolfenrain . Nous avons toujours ce problème sur la version dartdoc 0.42.0 mais uniquement sur un package spécifique.

Je suis le membre de l'équipe mentionné par @wolfenrain . Nous avons toujours ce problème sur la version dartdoc 0.42.0 mais uniquement sur un package spécifique.

Êtes-vous certain que la bonne version de dartdoc est exécutée dans votre cas d'utilisation ? J'ai tout essayé pour reproduire cela en dehors de 0.39.0. La version stable du SDK inclus avec le dernier flutter stable a toujours dartdoc 0.39.0, et si votre PATH n'est pas correctement configuré, vous pourriez l'utiliser et donc reproduire le crash.

Je suis le membre de l'équipe mentionné par @wolfenrain . Nous avons toujours ce problème sur la version dartdoc 0.42.0 mais uniquement sur un package spécifique.

Êtes-vous certain que la bonne version de dartdoc est exécutée dans votre cas d'utilisation ? J'ai tout essayé pour reproduire cela en dehors de 0.39.0. La version stable du SDK inclus avec le dernier flutter stable a toujours dartdoc 0.39.0, et si votre PATH n'est pas correctement configuré, vous pourriez l'utiliser et donc reproduire le crash.

Hé désolé la version dartdoc sur mon chemin était toujours 0.39.0 comme vous l'avez dit. La mise à jour vers 0.40.0 a résolu le problème.

Mon erreur était que j'ai utilisé pub global activate dartdoc pour mettre à jour dartdoc mais j'essayais toujours de générer des documents à partir de path. L'utilisation de flutter pub global run dartdoc:dartdoc fonctionne pour moi maintenant.

C'est quelque peu déroutant étant donné qu'il existe plusieurs façons d'accéder au package. #2607 devrait rendre plus clair la version que vous utilisez en cas d'exception pour les futures versions.

exécuter pub global run dartdoc:dartdoc au lieu de seulement dartdoc également corrigé pour moi. Merci tout le monde.

Cette page vous a été utile?
0 / 5 - 0 notes