Visual Studio Code - ไม่มีเป้าหมายของ URI 'package: flutter / material.dart'


125

ฉันเพิ่งตั้งค่า Macbook ของฉันเพื่อการพัฒนาที่กระพือปีก

ดังนั้นฉันดาวน์โหลด SDK กระพือและวางไว้ใน My Documents หลังจากนั้นฉันตั้งค่าตัวแปรเส้นทางของฉันเพื่อทำงานกับการกระพือปีกในบรรทัดคำสั่งของฉัน

ฉันรันคำสั่งflutter create todolistดังนั้นฉันจึงบรรลุโครงการเปล่า

ฉันยังตั้งค่ารหัสสตูดิโอภาพด้วยDart-Codeดังนั้นฉันจึงมีการเน้นไวยากรณ์ที่เหมาะสม Intellisense ฯลฯ

ดังนั้นเมื่อฉันเปิดโค้ด Visual Studio มันจะเน้นimportวิธีการดังภาพต่อไปนี้:

บรรทัดแรกของรหัส

ซึ่งหมายความว่ามันยังเน้นถึงคลาสที่ถูกต้องทำให้ยากที่จะเข้าใจว่าเป็นข้อผิดพลาดจริงหรือไม่

ผมได้ดำเนินการทั้งในpub getและflutter packages getและได้ทุกอย่างถูกต้อง ฉันมีตัวแปรเส้นทางถูกต้องทั้งหมด

เหตุใดจึงมีการเน้นว่าไม่พบแพ็คเกจ "นำเข้า" นั้น


แถบสถานะบอกอะไรเกี่ยวกับเวอร์ชัน Dart ดูเพิ่มเติมgithub.com/Dart-Code/Dart-Code/issues/318 ดูgithub.com/Dart-Code/Dart-Code/issues/…
GünterZöchbauer

ถูกต้องมันเขียนว่า "Dart - 1.24.0-dev.6.7" @ GünterZöchbauer
James

แต่ถ้าผมไปที่โครงการกระพือของฉันและดำเนินการกระพือเรียกมันติดตั้งอย่างถูกต้องบนอุปกรณ์ของฉัน
เจมส์

คุณติดตั้ง SDK แบบ non-Flutter Dart ไว้หรือไม่?
GünterZöchbauer

3
มีปัญหาเดียวกันนี้ แต่ด้วย Android Studio การรีสตาร์ท AS จะแก้ไขได้
mbwasi

คำตอบ:


223

รีสตาร์ท Visual Studio Code หลังจาก

flutter pub get

แก้ไขข้อความแสดงข้อผิดพลาดให้ฉัน

ที่มา: https://flutter.dev/docs/development/packages-and-plugins/using-packages


1
หากคุณสามารถทำซ้ำได้ ฉันชอบที่จะดู คุณไม่จำเป็นต้องรีสตาร์ท VS Code ด้วยตนเองเพื่อแก้ไขปัญหาเช่นนี้ (ถ้าคุณทำฉันต้องการแก้ไข) คุณสามารถแจ้งปัญหาได้ที่github.com/Dart-Code/Dart-Code/issues/newขอบคุณ!
Danny Tuppeny

25
สังเกตว่าตอนนี้flutter packages get
Zooly

2
ฉันเพิ่งปิดโฟลเดอร์ใน VSCode แล้วเปิดอีกครั้ง สิ่งนี้ได้รับการแก้ไข :)
Sravan

1
สิ่งนี้ใช้ได้กับฉันบน Ubuntu ( flutter packages getแล้วรีสตาร์ท VSCode) ขอบคุณ!
Chinnon Santos

2
สังเกตว่าตอนนี้flutter pub get flutter.dev/docs/development/packages-and-plugins/…
maheshmnj

25

ผู้เขียนปลั๊กอิน Dart Code ที่นี่! จากภาพหน้าจอฉันจะบอกว่านี่เป็นเพราะโครงการ flutter ของคุณอยู่ในโฟลเดอร์ย่อยของโฟลเดอร์ที่เปิดใน Code เราสแกนเฉพาะโฟลเดอร์ที่เปิดเพื่อตรวจสอบว่าเป็นโครงการ Flutter หรือไม่ซึ่งจะเปลี่ยน SDK ที่เราเปิดใช้และยังเปิดใช้งานฟังก์ชัน Flutter (เช่น daemon และ debugger)

คุณควรเปิดโฟลเดอร์ "todo" อีกครั้งโดยตรง

หากคุณต้องการเปิดหลายโปรเจ็กต์ร่วมกันให้ใช้พื้นที่ทำงานแบบหลายรูทเนื่องจาก Dart Code เป็นแบบหลายรูทและจะตรวจสอบแต่ละโฟลเดอร์ในพื้นที่ทำงานเมื่อตัดสินใจว่าจำเป็นต้องเปิดใช้งานฟังก์ชัน Flutter

อัปเดต

กรณีนี้ควรได้รับการสนับสนุนที่ดีกว่าในปลั๊กอิน Dart ในขณะนี้ดังนั้นการเปิดโฟลเดอร์หลักของโครงการ Flutter ควรทำงานตามที่คาดไว้


ฉันพึมพำเป็นเวลา 20 นาทีที่ข้อผิดพลาดของแพ็คเกจนี้ย้ายโฟลเดอร์การติดตั้งไปรอบ ๆ และอะไรทำนองนั้น ... ฉันเพิ่งเปิดโฟลเดอร์ผิด ฉันเป็นคนปัญญาอ่อน ขอบคุณ :)
Miiite

4
น่าเสียดายที่ใน Flutter 1.0 เมื่อใช้ VS Code และทำตามบทช่วยสอนเริ่มต้นใช้งาน Flutter.io การขาดการตรวจจับแพ็คเกจนี้ทำให้เกิดความน่าเกลียดอีกครั้ง ปลั๊กอินเรียกใช้ "flutter package get" อย่างถูกต้อง แต่ VS Code ไม่เห็นแพ็กเกจและทำการขีดเส้นใต้โค้ดทั้งหมดราวกับว่าเป็นข้อผิดพลาดในคลาสที่เกี่ยวข้อง การรีสตาร์ท VS Code ทำให้บรรทัดข้อผิดพลาดหายไปเมื่อฉันโหลดโฟลเดอร์โครงการอีกครั้ง อาจจะเป็นข้อผิดพลาดในการถดถอย?
CokoBWare

@CokoBWare คุณหมายถึงเมื่อใช้Flutter: New Projectคำสั่ง? ฉันเพิ่งทดสอบที่นี่และเมื่อการอัปเดตแพ็คเกจเสร็จสิ้นแล้วกระรอกสีแดงทั้งหมดก็หายไป
Danny Tuppeny

@DannyTuppeny ได้รับการแก้ไขสำหรับ Flutter Projects แต่ไม่ใช่สำหรับ Dart Projects ไม่ว่าจะด้วยวิธีใดในตอนนี้ฉันแค่คลิกขวาที่ pubspec.yaml แล้วเรียกใช้ Get Packages
user603749

@ user603749 ไม่มีเหตุผลที่ไม่ควรใช้กับ Dart ด้วย โปรดเปิดปัญหาใน GitHub พร้อมรายละเอียดสิ่งที่คุณเห็นเพื่อให้เราตรวจสอบได้ ขอบคุณ!
Danny Tuppeny

17

กระพือสะอาด

ได้รับแพ็คเกจกระพือ

อัปเกรดแพ็คเกจกระพือ (ทางเลือก - ใช้หากคุณต้องการอัปเกรดแพ็คเกจ)

รีสตาร์ท Android Studio หรือ Visual Studio


11

หากคุณใช้flutter packages getคำสั่งแล้ว แต่ข้อผิดพลาดยังคงมีอยู่คุณสามารถโหลดโค้ด VS Developer: Reload Windowคำสั่งซ้ำได้ เพียงพิมพ์หลังจากกดCtrl+Shift+P( Cmd+Shift+Pสำหรับผู้ใช้ Mac) มันจะล้างข้อผิดพลาด มันเหมือนกับ VS Code ที่สดชื่น


5

เปิดจานคำสั่ง (ctrl + shift + p) พิมพ์ flutter: รับแพ็คเกจ (ควรเติมข้อความอัตโนมัติ); หลังจากแก้ไขแล้วให้เปิดจานคำสั่งอีกครั้งและพิมพ์ reload window และดำเนินการคำสั่ง วิธีนี้ควรแก้ไขปัญหาโดยเร็วที่สุด



5

สิ่งนี้ใช้ได้กับฉันใน Android Studio เช่นเดียวกับ VS Code ฉันต้องเรียกใช้บรรทัดเหล่านี้ในเทอร์มินัล / พรอมต์คำสั่งของฉันเท่านั้นและปัญหาได้รับการแก้ไข ไม่จำเป็นต้องรีสตาร์ท IDE ใด ๆ อีกครั้ง

  • ได้รับแพ็คเกจกระพือ

คุณยังเรียกใช้

  • อัพเกรดกระพือ

4

วิธีที่เร็วที่สุดในการรับ Dart-Code เพื่อค้นหาการติดตั้ง Flutter ของคุณและใช้งานได้อย่างน่าเชื่อถือคือการสร้างFLUTTER_ROOTตัวแปรสภาพแวดล้อมใหม่และตั้งค่าเป็นเส้นทาง Flutter ของคุณ



2

โดยทั่วไป

  1. ตรวจสอบการเยื้องที่ถูกต้องของแพ็คเกจของคุณในการอ้างอิง
  2. หากตัวแก้ไขของคุณรองรับโปรแกรมจะทำงานโดยอัตโนมัติ -> flutter pub get
  3. ไม่ว่าจะด้วยวิธีใดก็ตาม -> open terminal-> flutter pub getหรือflutter package get
  4. ตรวจสอบ.packagesไฟล์ดูว่าแพคเกจของคุณเป็นปัจจุบันแพคเกจติดตั้งอื่น
  5. สำคัญที่สุด : รีสตาร์ท IDE ของคุณ (Visual Studio หรือ Android Studio)

เริ่มแก้ไขข้อบกพร่องโครงการของคุณ

ส่วนใหญ่ข้อผิดพลาดของคุณจะได้รับการแก้ไขในตอนนั้น

หวังว่าจะเหมาะกับคุณ


2

สิ่งง่ายๆที่ฉันทำหลังจากมีคนพูดที่นี่เพื่อรีสตาร์ท VSCode และฉันก็ทำอย่างนั้นและตอนนี้ทุกอย่างก็ทำงานได้ดี

สำหรับฉันมันเป็นเพราะตอนที่ฉันสร้างโปรเจ็กต์ฉันได้รับการแจ้งเตือนสำหรับการอัปเดตส่วนขยายโผ (หรือที่เกี่ยวข้อง) ของฉันและด้วยเหตุนี้ฉันจึงทำมันและบูมเมื่อโปรเจ็กต์ของฉันเริ่มต้นมันทำให้ฉันมีข้อผิดพลาดประมาณ 30 ข้อซึ่งทำให้ฉันกลัว แต่ก็ง่าย การแก้ไขคือการรีสตาร์ทบรรณาธิการ


1

ยังเกิดขึ้นกับฉันในขณะที่พยายามเรียกใช้โครงการภายในไดเรกทอรีอื่น

ทำงานโดยใช้ไดเรกทอรีรากของโครงการหลัก



1

หากคุณดำเนินการจากเทอร์มินัล: "เรียกใช้แพ็กเกจ flutter get" และข้อผิดพลาดยังคงดำเนินต่อไปให้ตรวจสอบว่าไดเร็กทอรีแพ็กเกจทั้งหมดแสดงอยู่ที่ไฟล์ - บางครั้งคุณมีแพ็คเกจ แต่ไม่ได้กำหนดค่าไว้ที่ไฟล์นี้



1

คำเตือน! แพ็กเกจนี้อ้างถึงที่เก็บ Flutter ผ่านไฟล์. package ที่ไม่สามารถใช้ได้อีกต่อไป พื้นที่เก็บข้อมูลที่เครื่องมือ 'flutter' กำลังดำเนินการอยู่จะถูกใช้แทน
การเรียกใช้เครื่องมือ Flutter: / opt / flutter การอ้างอิงก่อนหน้า: / Users / Shared / Library / flutter สิ่งนี้สามารถเกิดขึ้นได้หากคุณลบหรือย้ายสำเนาของที่เก็บ Flutter ของคุณหรือถ้ามันอยู่บนโวลุ่มที่ไม่ได้ติดตั้งอีกต่อไปหรือถูกเมาท์ ในสถานที่อื่น โปรดตรวจสอบเส้นทางระบบของคุณเพื่อตรวจสอบว่าคุณกำลังใช้งานเวอร์ชันที่คาดไว้ (เรียกใช้ 'flutter --version' เพื่อดูว่า flutter ใดอยู่บนเส้นทางของคุณ)

การตรวจสอบผลลัพธ์ของการflutter packages getแสดงให้เห็นว่าสาเหตุในกรณีของฉันเกิดจากการย้าย flutter sdk


1

พยายามเรียกใช้ flutter clean

จากนั้นรีสตาร์ท VS Code สิ่งนี้ทำเพื่อฉัน


0

อย่าลืม:

export PATH="$PATH:/home/[xxxxx]/flutter/bin

สำหรับฉันมันใช้งานได้:

flutter upgrade

flutter packages get

คุณสามารถตรวจสอบกับ

flutter doctor

flutter --version

0

ไปที่ไฟล์pubsec.yamlและเพิ่มสิ่งนี้โดยตรงหลังจากcupertino_icons :

webview_flutter:

จากนั้นกดแพคเกจที่มุมบนขวาและจะทำงานได้ดีกับคุณ


0

อย่าลืมเซฟ pubspec.yaml ก่อนเรียกใช้ "flutter pub get" การรีสตาร์ท Visual Studio Code นั้นไม่เพียงพอ นั่นคือทางออกของฉัน บางครั้งเมื่อคุณทำงานกับ intellij คุณลืมไปว่า ...


0

เพิ่มการอ้างอิง ตัวอย่างเช่น: - import 'package:audioplayers/audio_cache.dart'; ในแพ็คเกจด้านบนหากเราใช้แพ็คเกจนี้เท่านั้นมันจะแสดงข้อผิดพลาด แต่ถ้าเราเพิ่มการอ้างอิงใน pubspec.yaml เช่น

dependencies:
    flutter:
      sdk: flutter
    cupertino_icons: ^0.1.2
    audioplayers: ^0.14.1

ใส่คำอธิบายภาพที่นี่

จากนั้นคลิกที่แพ็คเกจรับ

เมื่อคุณเห็นสิ่งนี้ฉันยังสามารถแทรกการอ้างอิงได้ดังนั้นหากคุณแทรกการอ้างอิงพร้อมกับแพ็คเกจของคุณคุณก็พร้อมที่จะไป


0

เมื่อคุณมักจะได้รับข้อความแสดงข้อผิดพลาดนี้:

ไม่มีเป้าหมายของ URI: 'package: foo' ลองสร้างไฟล์ที่อ้างอิงโดย URI หรือลองใช้ URI สำหรับไฟล์ที่มีอยู่

ตัวอย่าง:

ไม่มีเป้าหมายของ URI: 'package: random_string / random_string.dart' ลองสร้างไฟล์ที่อ้างอิงโดย URI หรือลองใช้ URI สำหรับไฟล์ที่มีอยู่

import 'package:random_string/random_string.dart';

เป็นเพราะการพึ่งพาหายไป

ดังนั้นสิ่งที่คุณต้องทำคือค้นหาว่าแพ็คเกจใดที่จำเป็นโดยใช้ชื่อแพ็กเกจของคุณ

ใส่คำอธิบายภาพที่นี่

ติดตั้งการอ้างอิง:

$ flutter pub get

และเพิ่มการอ้างอิงในไฟล์ pubspec.yaml:

ใส่คำอธิบายภาพที่นี่


0

ฉันพยายามใช้แพ็คเกจเล่นเสียงกระพือปีก เมื่อฉันเพิ่มลงใน pubspec.yaml และพยายามนำเข้าสู่ main.dart ฉันก็พบข้อผิดพลาดเดียวกัน

ฉันพยายามรีสตาร์ท IDE แต่ไม่ได้ผลฉันจึงลองรันflutter packages pub cache repairและใช้ งานได้


1
โปรดเพิ่มบริบทเพิ่มเติมให้กับคำตอบของคุณเพื่อบอกว่าคำตอบนี้แตกต่างจากคำตอบอื่น ๆ อย่างไรและทำให้มีประโยชน์มากขึ้นในระยะยาว
มุสตาฟา

0

ฉันติดตามบทช่วยสอนการเริ่มต้นใช้งาน Flutter และ VSCode ไม่พบแพ็คเกจสำหรับenglish_wordsแม้ว่าจะแสดงในpubspeck.lockและ.packages . การรีโหลดแบบร้อนไม่ทำงาน

เพื่อให้ใช้งานได้ฉันจึงหยุดอินสแตนซ์และเรียกใช้ใหม่ - ดังนั้นฉันจึงไม่ต้องรีสตาร์ท VSCode


0

ฉันประสบปัญหาเดียวกันและลองทุกอย่างรีสตาร์ทรับแพคเกจซ่อมแซมทุกอย่าง แต่วิธีแก้ปัญหาเหล่านี้ไม่ได้ผล สิ่งเดียวที่ได้ผลคือการตั้งค่าการเข้ารหัสของไฟล์แพ็คเกจที่ให้ข้อผิดพลาดกับ UTF-8

PS: ฉันเจอสิ่งนี้ในสตูดิโอ Android

หวังว่านี่จะช่วยใครบางคนได้


0

หากคุณเปลี่ยนคุณสมบัติnameในpubspect.yamlแพ็คเกจทั้งหมดของคุณในโฟลเดอร์ lib ให้เปลี่ยนเป็นสีแดงโดยไม่มีข้อผิดพลาด Target of URI


0

ฉันไม่คิดว่าจะเป็นไปได้: ฉันต้องลบโฟลเดอร์ flutter และติดตั้งใหม่ตั้งแต่เริ่มต้น!


0

บางครั้งปัญหานี้แก้ไขได้ง่ายๆโดยการเรียกใช้flutter pub getอีกครั้ง ...

แพคเกจได้รับเพื่อให้แน่ใจว่าได้รับการพิจารณาแพ็คเกจทั้งหมด

เช่นเดียวกับเมื่อย้ายโปรเจ็กต์จากคอมพิวเตอร์เครื่องหนึ่งไปยังอีกเครื่องหนึ่งอาจเกิดขึ้นได้โดยที่แพ็คเกจไม่ได้ถูกนำมาพิจารณาดังนั้นflutter pub getคุณไปได้เลย !!!


0

ฉันใช้ (ตัวเลือกตำแหน่ง goggle (พร้อมการปรับแต่งเพิ่มเติมในฟังก์ชั่นและ UI)) ดังนั้นฉันจึงคัดลอกแพ็คเกจนี้ (สมบูรณ์) และใช้ในแอพของฉันในโฟลเดอร์เดียว แต่เนื่องจากตัววิเคราะห์รหัสโผวิเคราะห์โครงการที่กระพือหนึ่งดังนั้นฉันจึงพบว่าสิ่งที่เป็น การอ้างอิงจากภายในแพ็คเกจนี้ไม่ทำงานฉันคัดลอกเฉพาะโฟลเดอร์ lib (ของตัวเลือกตำแหน่งของ Google) ในโฟลเดอร์โปรเจ็กต์ดั้งเดิมของฉันและสิ่งนี้ใช้ได้กับฉัน วิธีแก้ปัญหานี้ใช้เวลา 3 วัน ฉันรู้ว่านี่ไม่ใช่คำถาม แต่อาจช่วยให้ใครบางคนประหยัดเวลาได้ 3 วัน


0

ฉันยังมีปัญหานี้ ฉันมีทั้งสองอย่างVS codeและAndroid studioติดตั้งในระบบของฉัน

VS codeข้อผิดพลาดอยู่ใน

เมื่อฉันเปิดโปรเจ็กต์เดียวกันAndroid studioการอ้างอิงไม่ได้ถูกเพิ่มลงในpubsec.yaml. pub.getฉันเพิ่มมันและมีการวิ่ง

เมื่อฉันกลับไปVS Codeและทุกอย่างทำงานได้ดี

ลองเปิดในโปรแกรมแก้ไขอื่น ๆ ถ้าคุณมีหรือผ่าน NotePadถ้าคุณมีหรือผ่าน

แก้ไข:

การเปิดwidget_test.dartและเรียกใช้ควรช่วยแก้ปัญหาของคุณได้เช่นกัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.