<p dir="auto">Flutter crash report; please file at <a href="https://github.com/flutter/flutter/issues">https://github.com/flutter/flutter/issues</a>.</p>
<h2 dir="auto">command</h2>
<p dir="auto">flutter upgrade</p>
<h2 dir="auto">exception</h2>
<p dir="auto">The null object does not have a getter 'length'.</p>
<p dir="auto">NoSuchMethodError: method not found: 'length'<br>
Receiver: null<br>
Arguments: []</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="dart:core                                                         Object.noSuchMethod
package:flutter_tools/src/version.dart 110                        _shortGitRevision
package:flutter_tools/src/version.dart 56                         FlutterVersion.engineRevisionShort
package:flutter_tools/src/version.dart 64                         FlutterVersion.toString
package:flutter_tools/src/commands/upgrade.dart 70                UpgradeCommand.runCommand.&lt;async&gt;
dart:async                                                        _SyncCompleter.complete
package:flutter_tools/src/base/process.dart 83                    runCommandAndStreamOutput.&lt;async&gt;
===== asynchronous gap ===========================
dart:async                                                        _Completer.completeError
package:flutter_tools/src/commands/upgrade.dart 86                UpgradeCommand.runCommand.&lt;async&gt;
dart:async                                                        _SyncCompleter.complete
package:flutter_tools/src/base/process.dart 83                    runCommandAndStreamOutput.&lt;async&gt;
===== asynchronous gap ===========================
dart:async                                                        _asyncThenWrapperHelper
package:flutter_tools/src/commands/upgrade.dart                   UpgradeCommand.runCommand
package:flutter_tools/src/runner/flutter_command.dart 150         FlutterCommand.verifyThenRunCommand.&lt;async&gt;
dart:async                                                        _SyncCompleter.complete
package:flutter_tools/src/cache.dart 184                          Cache.updateAll.&lt;async&gt;
===== asynchronous gap ===========================
dart:async                                                        _asyncThenWrapperHelper
package:flutter_tools/src/runner/flutter_command.dart             FlutterCommand.verifyThenRunCommand
package:flutter_tools/src/runner/flutter_command.dart 117         FlutterCommand.run
package:args/command_runner.dart 177                              CommandRunner.runCommand.&lt;fn&gt;
dart:async                                                        Future.Future.sync
package:args/command_runner.dart 130                              CommandRunner.runCommand
package:flutter_tools/src/runner/flutter_command_runner.dart 186  FlutterCommandRunner.runCommand.&lt;async&gt;
dart:async                                                        _SyncCompleter.complete
package:flutter_tools/src/cache.dart 71                           Cache.lock.&lt;async&gt;
===== asynchronous gap ===========================
dart:async                                                        _asyncThenWrapperHelper
package:flutter_tools/src/runner/flutter_command_runner.dart      FlutterCommandRunner.runCommand
package:args/command_runner.dart 104                              CommandRunner.run.&lt;fn&gt;
dart:async                                                        Future.Future.sync
package:args/command_runner.dart 104                              CommandRunner.run
package:flutter_tools/src/runner/flutter_command_runner.dart 132  FlutterCommandRunner.run
package:flutter_tools/executable.dart 97                          main.&lt;async&gt;.&lt;fn&gt;.&lt;async&gt;
===== asynchronous gap ===========================
package:stack_trace                                               Chain.capture
package:flutter_tools/executable.dart 91                          main.&lt;async&gt;"><pre class="notranslate"><code class="notranslate">dart:core                                                         Object.noSuchMethod
package:flutter_tools/src/version.dart 110                        _shortGitRevision
package:flutter_tools/src/version.dart 56                         FlutterVersion.engineRevisionShort
package:flutter_tools/src/version.dart 64                         FlutterVersion.toString
package:flutter_tools/src/commands/upgrade.dart 70                UpgradeCommand.runCommand.&lt;async&gt;
dart:async                                                        _SyncCompleter.complete
package:flutter_tools/src/base/process.dart 83                    runCommandAndStreamOutput.&lt;async&gt;
===== asynchronous gap ===========================
dart:async                                                        _Completer.completeError
package:flutter_tools/src/commands/upgrade.dart 86                UpgradeCommand.runCommand.&lt;async&gt;
dart:async                                                        _SyncCompleter.complete
package:flutter_tools/src/base/process.dart 83                    runCommandAndStreamOutput.&lt;async&gt;
===== asynchronous gap ===========================
dart:async                                                        _asyncThenWrapperHelper
package:flutter_tools/src/commands/upgrade.dart                   UpgradeCommand.runCommand
package:flutter_tools/src/runner/flutter_command.dart 150         FlutterCommand.verifyThenRunCommand.&lt;async&gt;
dart:async                                                        _SyncCompleter.complete
package:flutter_tools/src/cache.dart 184                          Cache.updateAll.&lt;async&gt;
===== asynchronous gap ===========================
dart:async                                                        _asyncThenWrapperHelper
package:flutter_tools/src/runner/flutter_command.dart             FlutterCommand.verifyThenRunCommand
package:flutter_tools/src/runner/flutter_command.dart 117         FlutterCommand.run
package:args/command_runner.dart 177                              CommandRunner.runCommand.&lt;fn&gt;
dart:async                                                        Future.Future.sync
package:args/command_runner.dart 130                              CommandRunner.runCommand
package:flutter_tools/src/runner/flutter_command_runner.dart 186  FlutterCommandRunner.runCommand.&lt;async&gt;
dart:async                                                        _SyncCompleter.complete
package:flutter_tools/src/cache.dart 71                           Cache.lock.&lt;async&gt;
===== asynchronous gap ===========================
dart:async                                                        _asyncThenWrapperHelper
package:flutter_tools/src/runner/flutter_command_runner.dart      FlutterCommandRunner.runCommand
package:args/command_runner.dart 104                              CommandRunner.run.&lt;fn&gt;
dart:async                                                        Future.Future.sync
package:args/command_runner.dart 104                              CommandRunner.run
package:flutter_tools/src/runner/flutter_command_runner.dart 132  FlutterCommandRunner.run
package:flutter_tools/executable.dart 97                          main.&lt;async&gt;.&lt;fn&gt;.&lt;async&gt;
===== asynchronous gap ===========================
package:stack_trace                                               Chain.capture
package:flutter_tools/executable.dart 91                          main.&lt;async&gt;
</code></pre></div>
<h2 dir="auto">flutter doctor</h2>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="encountered exception: The null object does not have a getter 'length'.

NoSuchMethodError: method not found: 'length'
Receiver: null
Arguments: []

#0      Object._noSuchMethod (dart:core-patch/object_patch.dart:44)
#1      Object.noSuchMethod (dart:core-patch/object_patch.dart:47)
#2      _shortGitRevision (package:flutter_tools/src/version.dart:110)
#3      FlutterVersion.engineRevisionShort (package:flutter_tools/src/version.dart:56)
#4      _FlutterValidator.validate.&lt;validate_async_body&gt; (package:flutter_tools/src/doctor.dart:212)
#5      Future.Future.microtask.&lt;anonymous closure&gt; (dart:async/future.dart:144)
#6      StackZoneSpecification._run (package:stack_trace/src/stack_zone_specification.dart:206)
#7      StackZoneSpecification.registerCallback.&lt;anonymous closure&gt; (package:stack_trace/src/stack_zone_specification.dart:125)
#8      _rootRun (dart:async/zone.dart:1146)
#9      _CustomZone.run (dart:async/zone.dart:1026)
#10     _CustomZone.runGuarded (dart:async/zone.dart:924)
#11     _CustomZone.bindCallback.&lt;anonymous closure&gt; (dart:async/zone.dart:951)
#12     StackZoneSpecification._run (package:stack_trace/src/stack_zone_specification.dart:206)
#13     StackZoneSpecification.registerCallback.&lt;anonymous closure&gt; (package:stack_trace/src/stack_zone_specification.dart:125)
#14     _rootRun (dart:async/zone.dart:1150)
#15     _CustomZone.run (dart:async/zone.dart:1026)
#16     _CustomZone.runGuarded (dart:async/zone.dart:924)
#17     _CustomZone.bindCallback.&lt;anonymous closure&gt; (dart:async/zone.dart:951)
#18     _microtaskLoop (dart:async/schedule_microtask.dart:41)
#19     _startMicrotaskLoop (dart:async/schedule_microtask.dart:50)
#20     _runPendingImmediateCallback (dart:isolate-patch/isolate_patch.dart:96)
#21     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:149)"><pre class="notranslate"><code class="notranslate">encountered exception: The null object does not have a getter 'length'.

NoSuchMethodError: method not found: 'length'
Receiver: null
Arguments: []

#0      Object._noSuchMethod (dart:core-patch/object_patch.dart:44)
#1      Object.noSuchMethod (dart:core-patch/object_patch.dart:47)
#2      _shortGitRevision (package:flutter_tools/src/version.dart:110)
#3      FlutterVersion.engineRevisionShort (package:flutter_tools/src/version.dart:56)
#4      _FlutterValidator.validate.&lt;validate_async_body&gt; (package:flutter_tools/src/doctor.dart:212)
#5      Future.Future.microtask.&lt;anonymous closure&gt; (dart:async/future.dart:144)
#6      StackZoneSpecification._run (package:stack_trace/src/stack_zone_specification.dart:206)
#7      StackZoneSpecification.registerCallback.&lt;anonymous closure&gt; (package:stack_trace/src/stack_zone_specification.dart:125)
#8      _rootRun (dart:async/zone.dart:1146)
#9      _CustomZone.run (dart:async/zone.dart:1026)
#10     _CustomZone.runGuarded (dart:async/zone.dart:924)
#11     _CustomZone.bindCallback.&lt;anonymous closure&gt; (dart:async/zone.dart:951)
#12     StackZoneSpecification._run (package:stack_trace/src/stack_zone_specification.dart:206)
#13     StackZoneSpecification.registerCallback.&lt;anonymous closure&gt; (package:stack_trace/src/stack_zone_specification.dart:125)
#14     _rootRun (dart:async/zone.dart:1150)
#15     _CustomZone.run (dart:async/zone.dart:1026)
#16     _CustomZone.runGuarded (dart:async/zone.dart:924)
#17     _CustomZone.bindCallback.&lt;anonymous closure&gt; (dart:async/zone.dart:951)
#18     _microtaskLoop (dart:async/schedule_microtask.dart:41)
#19     _startMicrotaskLoop (dart:async/schedule_microtask.dart:50)
#20     _runPendingImmediateCallback (dart:isolate-patch/isolate_patch.dart:96)
#21     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:149)
</code></pre></div>
<p dir="auto">The sidebar / navigation menu on <a href="https://docs.flutter.io/" rel="nofollow">https://docs.flutter.io/</a> starts with two nice, overall categories 'FLUTTER' and 'DART CORE', but then after that lists a whole bunch of smaller categories ('ASYNC', 'BOOLEAN_SELECTOR', etc.). Are those not all part of the larger categories, and thus can be excluded?</p>