Wie verwende ich ein lokales Flatterpaket in einer anderen Flatteranwendung?

75

Wie verwende ich ein lokales Flatterpaket in einer anderen Flatteranwendung?

Ich habe ein Paket mit folgendem Befehl erstellt:

flutter create --template=package my_new_package

und dann in meinem Anwendungsquellcode => main.dart

import "package:my_new_package/my_new_package.dart" // can not find the package
behzad besharati
quelle
1
Ich habe die gleichen Probleme. Obwohl die App ausgeführt wurde, ist der Fehler "Der URI existiert nicht" aufgetreten. Ich habe "Flutter Packets Get" ausgeführt, aber das Ergebnis war das gleiche.
Amenbo

Antworten:

108

Suchen Sie diese Datei in Ihrer Flatteranwendung => pubspec.yaml

lokale Abhängigkeit machen

dependencies:
   flutter:
     sdk: flutter
   my_new_package:
     path: ./my_new_package
behzad besharati
quelle
42
Achtung: Hier gibt es eine Falle, vor der ich die Leute warnen möchte. Erstellen Sie in Ihrem Flatter-Stammverzeichnis keinen Ordner mit dem Namen packagesund legen Sie dort Pakete ab. packagesOrdner wird beim Erstellen entfernt.
TheGwa
@TheGwa Wo sehen Sie den Autor dieser Antwort in einem Paketverzeichnis? Ich würde annehmen, dass Sie Ihr Paket nur auf der gleichen Ebene wie Ihr Testprojekt haben würden, nicht ein Paket innerhalb eines Testprojekts.
SacWebDeveloper
@SacWebDeveloper Die obige Antwort ist korrekt und ohne Fehler. Mein Kommentar ist nur eine Warnung. Wenn Sie projektspezifische Pakete haben, würde der naive Ansatz sein , um sie in einer setzen /packagesan der Wurzel Ihres Projekts auf dem gleichen Niveau wie Verzeichnis /android, /ios, /testsusw. Zum Zeitpunkt des Schreibens /packageswurde während Build überschrieben und Ihre Pakete nuke würde. Habe seit einiger Zeit nicht getestet.
TheGwa
1
Der offizielle Dokumentationslink für Paket und Plugin ist hier .
Tokenyet
3
@ TheGwa Oh. Das sind nützliche Informationen. Vielen Dank. Nennen Sie es vielleicht so etwas wie pluginsoder fügen Sie sie hinzu lib/packages? Vielleicht sollte die Gemeinde eine Konvention ausarbeiten.
SacWebDeveloper
15

Pfadabhängigkeit: Eine Flutter-App kann über einen Dateisystempfad von einem Plugin abhängen: Abhängigkeit. Der Pfad kann entweder relativ oder absolut sein. Verwenden Sie beispielsweise die folgende Syntax, um von einem Plugin Plugin1 abhängig zu sein, das sich in einem Verzeichnis neben der App befindet:

dependencies:
  plugin1:
    path: ../your_package/
Deepak Swain
quelle
5

Für den gesamten Prozess:

  1. Laden Sie den Code für das Plugin herunter, das Sie verwenden möchten, und platzieren Sie ihn auf der "gleichen" Ebene wie Ihr Flatterprojektverzeichnis

     -- plugin-name  
     -- your flutter directory -- lib
                               -- android
                               -- ios etc etc
    
  2. Fügen Sie den Plugin-Pfad zu pubspec.yaml hinzu. * Wenn Sie sich nicht sicher sind, name:welchen Plugin-Namen Sie verwenden sollen, überprüfen Sie das Attribut in der Datei pubspec.yaml des Plugins. Das Plugin-Verzeichnis muss ebenfalls mit diesem gespeichert werdenname:

    dependencies:
     plugin-name:
       path: ../plugin-name
    
  3. Führen Pub getSie aus und Sie können wie jedes andere Plugin importieren. Der einzige Unterschied besteht darin, dass beim Klicken auf eine der Plugin-Klassen während der Entwicklung auf die lokale Datei verwiesen wird.

GraSim
quelle