dart-lang / pub

The pub command line tool
https://dart.dev/tools/pub/cmd
BSD 3-Clause "New" or "Revised" License
1.04k stars 229 forks source link

flutter pub get and dart pub --trace get --no-precompile log #2928

Closed Turfedin closed 2 months ago

Turfedin commented 3 years ago

This is the first time I'm filling in a git issue, so please if I'm doing something wrong kindly share your feedback.

flutter pub get fails and asks me to include the following logs here.

What I did: I was checking out to previous versions of my flutter project, and the automatic pub get started to give me this error. Even after I came back to my last version the error remained.

PS C:\Users\<username>\PI\flutter_web> flutter pub get
The method 'containsKey' was called on null.
Receiver: null
Tried calling: containsKey("version")
dart:core                                                                             Object.noSuchMethod 
package:pub/src/lock_file.dart 132:24                                                 LockFile._parse.<fn>
dart:collection                                                                       MapMixin.forEach    
package:pub/src/lock_file.dart 130:22                                                 LockFile._parse
package:pub/src/lock_file.dart 82:21                                                  new LockFile.load
package:pub/src/entrypoint.dart 94:28                                                 Entrypoint.lockFile
package:pub/src/entrypoint.dart 239:19                                                Entrypoint.acquireDependencies.<fn>
package:pub/src/log.dart 362:18                                                       progress
package:pub/src/entrypoint.dart 233:24                                                Entrypoint.acquireDependencies     
package:pub/src/command/get.dart 43:23                                                GetCommand.runProtected      
dart:async                                                                            new Future.sync
package:pub/src/utils.dart 113:12                                                     captureErrors.wrappedCallback
dart:async                                                                            runZonedGuarded
package:pub/src/utils.dart 130:5                                                      captureErrors
package:pub/src/command.dart 164:13                                                   PubCommand.run
package:args/command_runner.dart 196:27                                               CommandRunner.runCommand     
package:pub/src/command_runner.dart 150:26                                            PubCommandRunner.runCommand  
package:pub/src/command_runner.dart 138:18                                            PubCommandRunner.run
C:\b\s\w\ir\cache\builder\src\third_party\dart\third_party\pkg\pub\bin\pub.dart 9:48  main
This is an unexpected error. Please run

    dart pub --trace get --no-precompile

and include the logs in an issue on https://github.com/dart-lang/pub/issues/new
Running "flutter pub get" in flutter_web...                             
pub get failed (1; and include the logs in an issue on https://github.com/dart-lang/pub/issues/new)
PS C:\Users\<username>\PI\flutter_web> dart pub --trace get --no-precompile
Resolving dependencies...
The method 'containsKey' was called on null.
Receiver: null
Tried calling: containsKey("version")
dart:core                                                                         Object.noSuchMethod
package:pub/src/lock_file.dart 132:24                                             LockFile._parse.<fn>
dart:collection                                                                   MapMixin.forEach
package:pub/src/lock_file.dart 130:22                                             LockFile._parse
package:pub/src/lock_file.dart 82:21                                              new LockFile.load
package:pub/src/entrypoint.dart 94:28                                             Entrypoint.lockFile
package:pub/src/entrypoint.dart 239:19                                            Entrypoint.acquireDependencies.<fn>
package:pub/src/log.dart 362:18                                                   progress
package:pub/src/entrypoint.dart 233:24                                            Entrypoint.acquireDependencies     
package:pub/src/command/get.dart 43:23                                            GetCommand.runProtected
dart:async                                                                        new Future.sync
package:pub/src/utils.dart 113:12                                                 captureErrors.wrappedCallback      
dart:async                                                                        runZonedGuarded
package:pub/src/utils.dart 130:5                                                  captureErrors
package:pub/src/command.dart 164:13                                               PubCommand.run
package:args/command_runner.dart 196:27                                           CommandRunner.runCommand
package:dartdev/dartdev.dart 199:30                                               DartdevRunner.runCommand
package:args/command_runner.dart 112:25                                           CommandRunner.run.<fn>
dart:async                                                                        new Future.sync
package:args/command_runner.dart 112:14                                           CommandRunner.run
package:dartdev/dartdev.dart 53:29                                                runDartdev
C:\b\s\w\ir\cache\builder\src\third_party\dart\pkg\dartdev\bin\dartdev.dart 11:9  main
This is an unexpected error. Please run

    dart pub --trace pub --trace get --no-precompile

and include the logs in an issue on https://github.com/dart-lang/pub/issues/new

The command recommended above is not correct and provokes the following error: Cannot specify arguments before a command. Sorry, I did not manage to correct it, if it is at all possible.

Lastly, here is mu flutter doctor -v:

[√] Flutter (Channel stable, 2.0.3, on Microsoft Windows [version 10.0.19042.867], locale fr-BE)
    • Flutter version 2.0.3 at C:\flutter\flutter_windows_1.20.0-stable\flutter
    • Framework revision 4d7946a68d (27 hours ago), 2021-03-18 17:24:33 -0700
    • Engine revision 3459eb2436
    • Dart version 2.12.2

[√] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
    • Android SDK at C:\Users\simon\AppData\Local\Android\Sdk
    • Platform android-29, build-tools 29.0.2
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
    • All Android licenses accepted.

[X] Chrome - develop for the web (Cannot find Chrome executable at .\Google\Chrome\Application\chrome.exe)
    ! Cannot find Chrome. Try setting CHROME_EXECUTABLE to a Chrome executable.

[√] Android Studio (version 4.0)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin version 48.0.2
    • Dart plugin version 193.7361
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)

[√] VS Code (version 1.54.3)
    • VS Code at C:\Users\simon\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.20.0

[√] Connected device (1 available)
    • Edge (web) • edge • web-javascript • Microsoft Edge 89.0.774.54
sigurdm commented 3 years ago

Thanks for posting.

This is a bug. Seems like an invalid assumption in the lockfile validation.

Could you paste your pubspec.lock file here? It seems to be "corrupted" I wonder if pub did that...

To work around, try deleting your pubspec.lock and run dart pub get again.

Turfedin commented 3 years ago

I solved the issue now. I deleted the pubspec.lock file as well as the files:

Not sure if it was all necessary, but afterwards dart pub get finally worked as expected.

This is the version of my pubspec.lock the closest to when my bug happened, but I cannot promise it is exactly the same unfortunately:

# Generated by pub
# See https://dart.dev/tools/pub/glossary#lockfile
packages:
  async:
    dependency: transitive
    description:
      name: async
      url: "https://pub.dartlang.org"
    source: hosted
    version: "2.5.0"
  boolean_selector:
    dependency: transitive
    description:
      name: boolean_selector
      url: "https://pub.dartlang.org"
    source: hosted
    version: "2.1.0"
  characters:
    dependency: transitive
    description:
      name: characters
      url: "https://pub.dartlang.org"
    source: hosted
    version: "1.1.0"
  charcode:
    dependency: transitive
    description:
      name: charcode
      url: "https://pub.dartlang.org"
    source: hosted
    version: "1.2.0"
  clock:
    dependency: transitive
    description:
      name: clock
      url: "https://pub.dartlang.org"
    source: hosted
    version: "1.1.0"
  collection:
    dependency: transitive
    description:
      name: collection
      url: "https://pub.dartlang.org"
    source: hosted
    version: "1.15.0"
  convert:
    dependency: transitive
    description:
      name: convert
      url: "https://pub.dartlang.org"
    source: hosted
    version: "2.1.1"
  crypto:
    dependency: transitive
    description:
      name: crypto
      url: "https://pub.dartlang.org"
    source: hosted
    version: "2.1.5"
  csslib:
    dependency: transitive
    description:
      name: csslib
      url: "https://pub.dartlang.org"
    source: hosted
    version: "0.16.2"
  cupertino_icons:
    dependency: "direct main"
    description:
      name: cupertino_icons
      url: "https://pub.dartlang.org"
    source: hosted
    version: "0.1.3"
  drag_and_drop_lists:
    dependency: "direct main"
    description:
      name: drag_and_drop_lists
      url: "https://pub.dartlang.org"
    source: hosted
    version: "0.0.7"
  dropdownfield:
    dependency: "direct main"
    description:
      name: dropdownfield
      url: "https://pub.dartlang.org"
    source: hosted
    version: "1.0.3"
  fake_async:
    dependency: transitive
    description:
      name: fake_async
      url: "https://pub.dartlang.org"
    source: hosted
    version: "1.2.0"
  ffi:
    dependency: transitive
    description:
      name: ffi
      url: "https://pub.dartlang.org"
    source: hosted
    version: "1.0.0"
  file:
    dependency: transitive
    description:
      name: file
      url: "https://pub.dartlang.org"
    source: hosted
    version: "6.1.0"
  flutter:
    dependency: "direct main"
    description: flutter
    source: sdk
    version: "0.0.0"
  flutter_keyboard_visibility:
    dependency: transitive
    description:
      name: flutter_keyboard_visibility
      url: "https://pub.dartlang.org"
    source: hosted
    version: "4.0.6"
  flutter_keyboard_visibility_platform_interface:
    dependency: transitive
    description:
      name: flutter_keyboard_visibility_platform_interface
      url: "https://pub.dartlang.org"
    source: hosted
    version: "1.0.1"
  flutter_keyboard_visibility_web:
    dependency: transitive
    description:
      name: flutter_keyboard_visibility_web
      url: "https://pub.dartlang.org"
    source: hosted
    version: "1.0.1"
  flutter_localizations:
    dependency: "direct main"
    description: flutter
    source: sdk
    version: "0.0.0"
  flutter_test:
    dependency: "direct dev"
    description: flutter
    source: sdk
    version: "0.0.0"
  flutter_typeahead:
    dependency: "direct main"
    description:
      name: flutter_typeahead
      url: "https://pub.dartlang.org"
    source: hosted
    version: "2.0.0"
  flutter_web_plugins:
    dependency: transitive
    description: flutter
    source: sdk
    version: "0.0.0"
  font_awesome_flutter:
    dependency: "direct main"
    description:
      name: font_awesome_flutter
      url: "https://pub.dartlang.org"
    source: hosted
    version: "8.12.0"
  get_it:
    dependency: "direct main"
    description:
      name: get_it
      url: "https://pub.dartlang.org"
    source: hosted
    version: "6.0.0"
  get_it_mixin:
    dependency: "direct main"
    description:
      name: get_it_mixin
      url: "https://pub.dartlang.org"
    source: hosted
    version: "2.0.0"
  html:
    dependency: transitive
    description:
      name: html
      url: "https://pub.dartlang.org"
    source: hosted
    version: "0.14.0+4"
  http:
    dependency: "direct main"
    description:
      name: http
      url: "https://pub.dartlang.org"
    source: hosted
    version: "0.12.2"
  http_parser:
    dependency: transitive
    description:
      name: http_parser
      url: "https://pub.dartlang.org"
    source: hosted
    version: "3.1.4"
  intl:
    dependency: "direct main"
    description:
      name: intl
      url: "https://pub.dartlang.org"
    source: hosted
    version: "0.17.0"
  js:
    dependency: transitive
    description:
      name: js
      url: "https://pub.dartlang.org"
    source: hosted
    version: "0.6.3"
  kernel:
    dependency: transitive
    description:
      name: kernel
      url: "https://pub.dartlang.org"
    source: hosted
    version: "0.3.19"
  lazy_load_scrollview:
    dependency: "direct main"
    description:
      name: lazy_load_scrollview
      url: "https://pub.dartlang.org"
    source: hosted
    version: "1.2.0"
  matcher:
    dependency: transitive
    description:
      name: matcher
      url: "https://pub.dartlang.org"
    source: hosted
    version: "0.12.10"
  meta:
    dependency: transitive
    description:
      name: meta
      url: "https://pub.dartlang.org"
    source: hosted
    version: "1.3.0"
  nested:
    dependency: transitive
    description:
      name: nested
      url: "https://pub.dartlang.org"
    source: hosted
    version: "1.0.0"
  observable_ish:
    dependency: transitive
    description:
      name: observable_ish
      url: "https://pub.dartlang.org"
    source: hosted
    version: "2.1.5"
  path:
    dependency: transitive
    description:
      name: path
      url: "https://pub.dartlang.org"
    source: hosted
    version: "1.8.0"
  path_provider_linux:
    dependency: transitive
    description:
      name: path_provider_linux
      url: "https://pub.dartlang.org"
    source: hosted
    version: "2.0.0"
  path_provider_platform_interface:
    dependency: transitive
    description:
      name: path_provider_platform_interface
      url: "https://pub.dartlang.org"
    source: hosted
    version: "2.0.0"
  path_provider_windows:
    dependency: transitive
    description:
      name: path_provider_windows
      url: "https://pub.dartlang.org"
    source: hosted
    version: "2.0.0"
  pedantic:
    dependency: transitive
    description:
      name: pedantic
      url: "https://pub.dartlang.org"
    source: hosted
    version: "1.11.0"
  platform:
    dependency: transitive
    description:
      name: platform
      url: "https://pub.dartlang.org"
    source: hosted
    version: "3.0.0"
  plugin_platform_interface:
    dependency: transitive
    description:
      name: plugin_platform_interface
      url: "https://pub.dartlang.org"
    source: hosted
    version: "1.0.3"
  process:
    dependency: transitive
    description:
      name: process
      url: "https://pub.dartlang.org"
    source: hosted
    version: "4.1.0"
  provider:
    dependency: "direct main"
    description:
      name: provider
      url: "https://pub.dartlang.org"
    source: hosted
    version: "4.3.3"
  responsive_builder:
    dependency: "direct main"
    description:
      name: responsive_builder
      url: "https://pub.dartlang.org"
    source: hosted
    version: "0.3.0"
  shared_preferences:
    dependency: "direct main"
    description:
      name: shared_preferences
      url: "https://pub.dartlang.org"
    source: hosted
    version: "2.0.5"
  shared_preferences_linux:
    dependency: transitive
    description:
      name: shared_preferences_linux
      url: "https://pub.dartlang.org"
    source: hosted
    version: "2.0.0"
  shared_preferences_macos:
    dependency: transitive
    description:
      name: shared_preferences_macos
      url: "https://pub.dartlang.org"
    source: hosted
    version: "2.0.0"
  shared_preferences_platform_interface:
    dependency: transitive
    description:
      name: shared_preferences_platform_interface
      url: "https://pub.dartlang.org"
    source: hosted
    version: "2.0.0"
  shared_preferences_web:
    dependency: transitive
    description:
      name: shared_preferences_web
      url: "https://pub.dartlang.org"
    source: hosted
    version: "2.0.0"
  shared_preferences_windows:
    dependency: transitive
    description:
      name: shared_preferences_windows
      url: "https://pub.dartlang.org"
    source: hosted
    version: "2.0.0"
  sky_engine:
    dependency: transitive
    description: flutter
    source: sdk
    version: "0.0.99"
  source_span:
    dependency: transitive
    description:
      name: source_span
      url: "https://pub.dartlang.org"
    source: hosted
    version: "1.8.0"
  stack_trace:
    dependency: transitive
    description:
      name: stack_trace
      url: "https://pub.dartlang.org"
    source: hosted
    version: "1.10.0"
  stacked:
    dependency: "direct main"
    description:
      name: stacked
      url: "https://pub.dartlang.org"
    source: hosted
    version: "1.9.0"
  stream_channel:
    dependency: transitive
    description:
      name: stream_channel
      url: "https://pub.dartlang.org"
    source: hosted
    version: "2.1.0"
  string_scanner:
    dependency: transitive
    description:
      name: string_scanner
      url: "https://pub.dartlang.org"
    source: hosted
    version: "1.1.0"
  term_glyph:
    dependency: transitive
    description:
      name: term_glyph
      url: "https://pub.dartlang.org"
    source: hosted
    version: "1.2.0"
  test_api:
    dependency: transitive
    description:
      name: test_api
      url: "https://pub.dartlang.org"
    source: hosted
    version: "0.2.19"
  typed_data:
    dependency: transitive
    description:
      name: typed_data
      url: "https://pub.dartlang.org"
    source: hosted
    version: "1.3.0"
  universal_html:
    dependency: "direct main"
    description:
      name: universal_html
      url: "https://pub.dartlang.org"
    source: hosted
    version: "1.2.4"
  universal_io:
    dependency: transitive
    description:
      name: universal_io
      url: "https://pub.dartlang.org"
    source: hosted
    version: "1.0.2"
  vector_math:
    dependency: transitive
    description:
      name: vector_math
      url: "https://pub.dartlang.org"
    source: hosted
    version: "2.1.0"
  win32:
  watcher:
    dependency: transitive
    description:
      name: win32
      url: "https://pub.dartlang.org"
    source: hosted
    version: "2.0.4"
  xdg_directories:
    dependency: transitive
    description:
      name: xdg_directories
      url: "https://pub.dartlang.org"
    source: hosted
    version: "0.2.0"
  zone_local:
    dependency: transitive
    description:
      name: zone_local
      url: "https://pub.dartlang.org"
    source: hosted
    version: "0.1.2"
sdks:
  dart: ">=2.12.0 <3.0.0"
  flutter: ">=2.0.0"

And this is the pubspec.lock after it started working again:

# Generated by pub
# See https://dart.dev/tools/pub/glossary#lockfile
packages:
  async:
    dependency: transitive
    description:
      name: async
      url: "https://pub.dartlang.org"
    source: hosted
    version: "2.5.0"
  boolean_selector:
    dependency: transitive
    description:
      name: boolean_selector
      url: "https://pub.dartlang.org"
    source: hosted
    version: "2.1.0"
  characters:
    dependency: transitive
    description:
      name: characters
      url: "https://pub.dartlang.org"
    source: hosted
    version: "1.1.0"
  charcode:
    dependency: transitive
    description:
      name: charcode
      url: "https://pub.dartlang.org"
    source: hosted
    version: "1.2.0"
  clock:
    dependency: transitive
    description:
      name: clock
      url: "https://pub.dartlang.org"
    source: hosted
    version: "1.1.0"
  collection:
    dependency: transitive
    description:
      name: collection
      url: "https://pub.dartlang.org"
    source: hosted
    version: "1.15.0"
  crypto:
    dependency: transitive
    description:
      name: crypto
      url: "https://pub.dartlang.org"
    source: hosted
    version: "3.0.0"
  csslib:
    dependency: transitive
    description:
      name: csslib
      url: "https://pub.dartlang.org"
    source: hosted
    version: "0.16.2"
  cupertino_icons:
    dependency: "direct main"
    description:
      name: cupertino_icons
      url: "https://pub.dartlang.org"
    source: hosted
    version: "0.1.3"
  drag_and_drop_lists:
    dependency: "direct main"
    description:
      name: drag_and_drop_lists
      url: "https://pub.dartlang.org"
    source: hosted
    version: "0.0.7"
  dropdownfield:
    dependency: "direct main"
    description:
      name: dropdownfield
      url: "https://pub.dartlang.org"
    source: hosted
    version: "1.0.3"
  fake_async:
    dependency: transitive
    description:
      name: fake_async
      url: "https://pub.dartlang.org"
    source: hosted
    version: "1.2.0"
  ffi:
    dependency: transitive
    description:
      name: ffi
      url: "https://pub.dartlang.org"
    source: hosted
    version: "1.0.0"
  file:
    dependency: transitive
    description:
      name: file
      url: "https://pub.dartlang.org"
    source: hosted
    version: "6.1.0"
  flutter:
    dependency: "direct main"
    description: flutter
    source: sdk
    version: "0.0.0"
  flutter_keyboard_visibility:
    dependency: transitive
    description:
      name: flutter_keyboard_visibility
      url: "https://pub.dartlang.org"
    source: hosted
    version: "4.0.6"
  flutter_keyboard_visibility_platform_interface:
    dependency: transitive
    description:
      name: flutter_keyboard_visibility_platform_interface
      url: "https://pub.dartlang.org"
    source: hosted
    version: "1.0.1"
  flutter_keyboard_visibility_web:
    dependency: transitive
    description:
      name: flutter_keyboard_visibility_web
      url: "https://pub.dartlang.org"
    source: hosted
    version: "1.0.1"
  flutter_localizations:
    dependency: "direct main"
    description: flutter
    source: sdk
    version: "0.0.0"
  flutter_test:
    dependency: "direct dev"
    description: flutter
    source: sdk
    version: "0.0.0"
  flutter_typeahead:
    dependency: "direct main"
    description:
      name: flutter_typeahead
      url: "https://pub.dartlang.org"
    source: hosted
    version: "2.0.0"
  flutter_web_plugins:
    dependency: transitive
    description: flutter
    source: sdk
    version: "0.0.0"
  font_awesome_flutter:
    dependency: "direct main"
    description:
      name: font_awesome_flutter
      url: "https://pub.dartlang.org"
    source: hosted
    version: "8.12.0"
  get_it:
    dependency: "direct main"
    description:
      name: get_it
      url: "https://pub.dartlang.org"
    source: hosted
    version: "6.0.0"
  get_it_mixin:
    dependency: "direct main"
    description:
      name: get_it_mixin
      url: "https://pub.dartlang.org"
    source: hosted
    version: "2.0.0"
  html:
    dependency: transitive
    description:
      name: html
      url: "https://pub.dartlang.org"
    source: hosted
    version: "0.14.0+4"
  http:
    dependency: "direct main"
    description:
      name: http
      url: "https://pub.dartlang.org"
    source: hosted
    version: "0.12.2"
  http_parser:
    dependency: transitive
    description:
      name: http_parser
      url: "https://pub.dartlang.org"
    source: hosted
    version: "3.1.4"
  intl:
    dependency: "direct main"
    description:
      name: intl
      url: "https://pub.dartlang.org"
    source: hosted
    version: "0.17.0"
  js:
    dependency: transitive
    description:
      name: js
      url: "https://pub.dartlang.org"
    source: hosted
    version: "0.6.3"
  lazy_load_scrollview:
    dependency: "direct main"
    description:
      name: lazy_load_scrollview
      url: "https://pub.dartlang.org"
    source: hosted
    version: "1.2.0"
  matcher:
    dependency: transitive
    description:
      name: matcher
      url: "https://pub.dartlang.org"
    source: hosted
    version: "0.12.10"
  meta:
    dependency: transitive
    description:
      name: meta
      url: "https://pub.dartlang.org"
    source: hosted
    version: "1.3.0"
  nested:
    dependency: transitive
    description:
      name: nested
      url: "https://pub.dartlang.org"
    source: hosted
    version: "1.0.0"
  observable_ish:
    dependency: transitive
    description:
      name: observable_ish
      url: "https://pub.dartlang.org"
    source: hosted
    version: "2.1.5"
  path:
    dependency: transitive
    description:
      name: path
      url: "https://pub.dartlang.org"
    source: hosted
    version: "1.8.0"
  path_provider_linux:
    dependency: transitive
    description:
      name: path_provider_linux
      url: "https://pub.dartlang.org"
    source: hosted
    version: "2.0.0"
  path_provider_platform_interface:
    dependency: transitive
    description:
      name: path_provider_platform_interface
      url: "https://pub.dartlang.org"
    source: hosted
    version: "2.0.0"
  path_provider_windows:
    dependency: transitive
    description:
      name: path_provider_windows
      url: "https://pub.dartlang.org"
    source: hosted
    version: "2.0.0"
  pedantic:
    dependency: transitive
    description:
      name: pedantic
      url: "https://pub.dartlang.org"
    source: hosted
    version: "1.11.0"
  platform:
    dependency: transitive
    description:
      name: platform
      url: "https://pub.dartlang.org"
    source: hosted
    version: "3.0.0"
  plugin_platform_interface:
    dependency: transitive
    description:
      name: plugin_platform_interface
      url: "https://pub.dartlang.org"
    source: hosted
    version: "1.0.3"
  process:
    dependency: transitive
    description:
      name: process
      url: "https://pub.dartlang.org"
    source: hosted
    version: "4.1.0"
  provider:
    dependency: "direct main"
    description:
      name: provider
      url: "https://pub.dartlang.org"
    source: hosted
    version: "4.3.3"
  responsive_builder:
    dependency: "direct main"
    description:
      name: responsive_builder
      url: "https://pub.dartlang.org"
    source: hosted
    version: "0.3.0"
  shared_preferences:
    dependency: "direct main"
    description:
      name: shared_preferences
      url: "https://pub.dartlang.org"
    source: hosted
    version: "2.0.5"
  shared_preferences_linux:
    dependency: transitive
    description:
      name: shared_preferences_linux
      url: "https://pub.dartlang.org"
    source: hosted
    version: "2.0.0"
  shared_preferences_macos:
    dependency: transitive
    description:
      name: shared_preferences_macos
      url: "https://pub.dartlang.org"
    source: hosted
    version: "2.0.0"
  shared_preferences_platform_interface:
    dependency: transitive
    description:
      name: shared_preferences_platform_interface
      url: "https://pub.dartlang.org"
    source: hosted
    version: "2.0.0"
  shared_preferences_web:
    dependency: transitive
    description:
      name: shared_preferences_web
      url: "https://pub.dartlang.org"
    source: hosted
    version: "2.0.0"
  shared_preferences_windows:
    dependency: transitive
    description:
      name: shared_preferences_windows
      url: "https://pub.dartlang.org"
    source: hosted
    version: "2.0.0"
  sky_engine:
    dependency: transitive
    description: flutter
    source: sdk
    version: "0.0.99"
  source_span:
    dependency: transitive
    description:
      name: source_span
      url: "https://pub.dartlang.org"
    source: hosted
    version: "1.8.0"
  stack_trace:
    dependency: transitive
    description:
      name: stack_trace
      url: "https://pub.dartlang.org"
    source: hosted
    version: "1.10.0"
  stacked:
    dependency: "direct main"
    description:
      name: stacked
      url: "https://pub.dartlang.org"
    source: hosted
    version: "1.9.0"
  stream_channel:
    dependency: transitive
    description:
      name: stream_channel
      url: "https://pub.dartlang.org"
    source: hosted
    version: "2.1.0"
  string_scanner:
    dependency: transitive
    description:
      name: string_scanner
      url: "https://pub.dartlang.org"
    source: hosted
    version: "1.1.0"
  term_glyph:
    dependency: transitive
    description:
      name: term_glyph
      url: "https://pub.dartlang.org"
    source: hosted
    version: "1.2.0"
  test_api:
    dependency: transitive
    description:
      name: test_api
      url: "https://pub.dartlang.org"
    source: hosted
    version: "0.2.19"
  typed_data:
    dependency: transitive
    description:
      name: typed_data
      url: "https://pub.dartlang.org"
    source: hosted
    version: "1.3.0"
  universal_html:
    dependency: "direct main"
    description:
      name: universal_html
      url: "https://pub.dartlang.org"
    source: hosted
    version: "1.2.4"
  universal_io:
    dependency: transitive
    description:
      name: universal_io
      url: "https://pub.dartlang.org"
    source: hosted
    version: "2.0.1"
  vector_math:
    dependency: transitive
    description:
      name: vector_math
      url: "https://pub.dartlang.org"
    source: hosted
    version: "2.1.0"
  win32:
    dependency: transitive
    description:
      name: win32
      url: "https://pub.dartlang.org"
    source: hosted
    version: "2.0.4"
  xdg_directories:
    dependency: transitive
    description:
      name: xdg_directories
      url: "https://pub.dartlang.org"
    source: hosted
    version: "0.2.0"
  zone_local:
    dependency: transitive
    description:
      name: zone_local
      url: "https://pub.dartlang.org"
    source: hosted
    version: "0.1.2"
sdks:
  dart: ">=2.12.0 <3.0.0"
  flutter: ">=2.0.0"
sigurdm commented 3 years ago

So the problem with the pubspec.lock is the win32: line. Looking at the generating code this could not be generated by pub:

  String serialize(String packageDir) {
    // Convert the dependencies to a simple object.
    var packageMap = {};
    packages.forEach((name, package) {
      var description =
          package.source.serializeDescription(packageDir, package.description);

      packageMap[name] = {
        'version': package.version.toString(),
        'source': package.source.name,
        'description': description,
        'dependency': _dependencyType(package.name)
      };
    });

    var data = {
      'sdks': mapMap(sdkConstraints,
          value: (_, constraint) => constraint.toString()),
      'packages': packageMap
    };
    return '''
# Generated by pub
# See https://dart.dev/tools/pub/glossary#lockfile
${yamlToString(data)}
''';
  }

Probably the contents of pubspec.lock was modified by hand by accident somehow.

Still we need to fix the validation code, such that it doesn't crash.

sigurdm commented 2 months ago

This has been fixed somewhere along the way.

The message is now:

Failed parsing lock file:

Error on line 449, column 8 of pubspec.lock: Expected a map
    ╷
449 │   win32:
    │        ^
    ╵

Consider deleting the file and running `dart pub get` to recreate it.