Как отладить приложение флаттера в vscode, если программа запуска находится глубоко внутри? - PullRequest
0 голосов
/ 15 марта 2019

Проблема вкратце

Я пытаюсь отладить приложение флаттера с помощью vscode, и я получаю следующее предупреждение, и отладка прекращается из-за ошибок, приведенных в конце этого вопроса. Видимо он не может найти мой дротик SDK. Но я указал путь sdk в настройках.

mobile_app/lib/main.dart:1: Warning: Interpreting this as package URI, 'package:mobile_app/main.dart'.

Проблема упоминается в этом среднем сообщении , но без решения. Возможно, вам придется перевести страницу, чтобы прочитать ее.


Еще больше подсказок

  • Это происходит только тогда, когда моя основная программа вложена более чем в два уровня. У меня есть глубоко вложенная структура папок (см. Ниже). Файл main.dart находится в foo/code/ui/mobile_app/lib, а файл .vscode/launch.json находится в foo. Я указал этот путь в launch.json для vscode. Он отлично работает, если я помещаю свой .vscode/launch.json в ui и открываю папку ui в vscode или когда я помещаю ее в mobile_app.
  • Это происходит только в vscode. (Другая среда разработки, которую я пробовал - Android Studio)


Структура моей папки

- foo
  - .vscode
    # launch.json
  - code
    + domain (this is a dart lib (shared code))
    - ui
      - mobile_app
        - lib
          # main.dart
      + web_app
  + design


launch.json

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Jamsalon Mobile App",
            "program": "code/ui/mobile_app/lib/main.dart",
            "request": "launch",
            "type": "dart"
        }
    ]
}


Полная ошибка

mobile_app/lib/main.dart:1: Warning: Interpreting this as package URI, 'package:mobile_app/main.dart'.

file:///C:/Users/random_user/Documents/app_development/frameworks/flutter/packages/flutter/lib/src/material/animated_icons.dart:9:8: Error: Not found: 'dart:ui'
import 'dart:ui' as ui show Paint, Path, Canvas;
       ^
file:///C:/Users/random_user/Documents/app_development/frameworks/flutter/packages/flutter/lib/src/material/animated_icons.dart:10:8: Error: Not found: 'dart:ui'
import 'dart:ui' show lerpDouble;
       ^
file:///C:/Users/random_user/Documents/app_development/frameworks/flutter/packages/flutter/lib/src/material/app.dart:5:8: Error: Not found: 'dart:ui'
import 'dart:ui' as ui;
       ^
file:///C:/Users/random_user/Documents/app_development/frameworks/flutter/packages/flutter/lib/src/material/app_bar_theme.dart:5:8: Error: Not found: 'dart:ui'
import 'dart:ui' show lerpDouble;
       ^
file:///C:/Users/random_user/Documents/app_development/frameworks/flutter/packages/flutter/lib/src/material/arc.dart:6:8: Error: Not found: 'dart:ui'
import 'dart:ui' show lerpDouble;
       ^
file:///C:/Users/random_user/Documents/app_development/frameworks/flutter/packages/flutter/lib/src/material/bottom_app_bar_theme.dart:5:8: Error: Not found: 'dart:ui'

1 Ответ

1 голос
/ 15 марта 2019

Эти ошибки связаны с тем, что ваш проект не определяется как проект Flutter (из-за глубокого вложения).Когда проект Dart открыт, плагин должен решить, следует ли перейти в «Режим Flutter» и искать Flutter SDK (и вызывать команды flutter) или «Режим Dart» (ищет стандартный Dart SDK и использует dart и pub команды).

По соображениям производительности при сканировании принимается только два верхних уровня папок.Если у вас есть проект Flutter, вложенный в несколько уровней, он перейдет в «режим дротика».

Я бы порекомендовал использовать функцию многокорневого рабочего пространства VS Code, чтобы проект Flutter был доступен в дальнейшем.(или как папка рабочего пространства).Например, если вы нажмете Файл -> Добавить папку в рабочую область, а затем перейдете в папку mobile_app, это должно исправить это.К сожалению, этот опыт не так хорош, как хотелось бы (теперь вы увидите, что mobile_app дублируется на верхнем уровне дерева обозревателя) из-за https://github.com/Microsoft/vscode/issues/45470 (пожалуйста, добавьте ? к этому!).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...