Ganessa
Ganessa

Reputation: 902

Debug Flutter by pressing F5 as well as the command

We use Flutter with VSCode. We have been able to debug as expected with the following commands.

fvm flutter run --debug --flavor production --target lib/main-production.dart

But when we press F5 to run from VSCode, the following code throws a MissingPluginException.

~/fvm/versions/2.10.5/packages/flutter/lib/src/services/platform_channel.dart

  @optionalTypeArgs
  Future<T?> _invokeMethod<T>(String method, { required bool missingOk, dynamic arguments }) async {
    assert(method != null);
    final ByteData? result = await binaryMessenger.send(
      name,
      codec.encodeMethodCall(MethodCall(method, arguments)),
    );
    if (result == null) {
      if (missingOk) {
        return null;
      }
      throw MissingPluginException('No implementation found for method $method on channel $name');
    }
    return codec.decodeEnvelope(result) as T?;
  }

We want to debug pressing F5 as well as the command case. We have set up launch.json as follows Isn't this the same command we are running?

.vscode/launch.json

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Production(Debug)",
      "request": "launch",
      "type": "dart",
      "program": "lib/main-production.dart",
      "args": [
        "--debug",
        "--flavor",
        "production",
      ]
    },
  ]
}

We are using fvm, but it looks like Flutter 2.10.5 is being used both in VSCode and in the command.

.fvm/fvm_config.json

{
  "flutterSdkVersion": "2.10.5",
  "flavors": {}
}
fvm --version
2.4.1
fvm flutter --version
Flutter 2.10.5 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 5464c5bac7 (5 months ago) • 2022-04-18 09:55:37 -0700
Engine • revision 57d3bac3dd
Tools • Dart 2.16.2 • DevTools 2.9.2

[Added] We also set the global Flutter version to 2.10.5 but the error remained the same.

% fvm use 2.10.5      
Project now uses Flutter [2.10.5]

% fvm global 2.10.5
Flutter "2.10.5" has been set as global

% fvm doctor

FVM Version: 2.4.1
___________________________________________________

FVM config found:
___________________________________________________

Project: daigas_capture
Directory: /Users/xxxxx/zzzzz
Version: 2.10.5
Project Flavor: None selected
___________________________________________________

Version is currently cached locally.

Cache Path: /Users/xxxxx/fvm/versions/2.10.5
Channel: false
SDK Version: 2.10.5

IDE Links
VSCode: .fvm/flutter_sdk
Android Studio: /Users/xxxxx/zzzzz/.fvm/flutter_sdk


Configured env paths:
___________________________________________________

Flutter:
/Users/xxxxx/fvm/default/bin/flutter

Dart:
/usr/local/bin/dart

FVM_HOME:
not set

Upvotes: 2

Views: 2931

Answers (1)

Arin Faraj
Arin Faraj

Reputation: 408

Make sure to follow the fvm configuration for VSCode Which states that you need these settings inside .vscode/settings.json

{
  "dart.flutterSdkPath": ".fvm/flutter_sdk",
  // Remove .fvm files from search
  "search.exclude": {
    "**/.fvm": true
  },
  // Remove from file watching
  "files.watcherExclude": {
    "**/.fvm": true
  }
}

Upvotes: 2

Related Questions