web-dev-qa-db-fra.com

Flutter: fichier cible "lib / main.Dart" introuvable

Lorsque j'exécute flutter run j'obtiens une erreur

Le fichier cible "lib/main.Dart" est introuvable.

Pourquoi cela se produit-il et comment puis-je résoudre ce problème?

16

Vous pouvez exécuter n'importe quel fichier à partir de n'importe quel DIR à condition de définir le chemin du fichier cible, par exemple:

flutter run -t lib/main_dev.Dart

OR

flutter run lib/dev/main_dev.Dart

MISE À JOUR (5 février 2020)

Il n'est cependant pas conseillé de supprimer main.Dart de votre projet.

Je suis sûr que la plupart d'entre vous ont trouvé ce lien parce que vous installez/configurez votre application pour s'adapter à différents environnements, par exemple dev, stg, beta et prod.

Exemple:

main_dev.Dart:

void main() async {
  dynamic configuredApp = AppConfig(
    appName: 'Flutter',
    flavorName: 'development',
    appVersion: 1.0,
    apiBaseUrl: 'https://dev-api.example.com/'
  );

  runApp(App(configuredApp));
}

main.Dart

class App extends StatefulWidget {
  final dynamic configuredApp;

  App(this.configuredApp);

  @override
  _AppState createState() => _AppState();
}

Comme il s'avère que certaines étapes de construction échoueront dans Android Studio principalement lié à Gradle si vous n'avez pas de fichier main.Dart et de méthode main () {} référencés dans ce fichier.

  • Erreurs de build courantes (migration AndroidX, build APK, etc.)
  • Plus d'informations/solutions ci-dessous concernant l'erreur de construction de flottement: terminé avec une valeur de sortie non nulle 1

    1. issuecomment
    2. issuecomment
    3. issuecomment

Une alternative à flutter run -t lib/main_dev.Dart dans VS Code avec l'outil de débogage.

  • Cliquez sur "Ajouter une configuration" et ajoutez les éléments suivants ou ajoutez manuellement:

.vscode/launch.json

  "configurations": [

    {
      "name": "Flutter",
      "request": "launch",
      "type": "Dart",
      // "args": ["--enable-software-rendering"]
      // "flutterMode": "profile", //debug //release 
      "program": "${workspaceFolder}/lib/main_dev.Dart"
    }
  ]

J'espère que cela t'aides.

35
Elroy

Flutter recherche main.Dart dans le dossier lib alors que vous devez avoir un fichier dans n'importe quel autre paquet.

La meilleure solution consiste à placer votre fichier main.Dart juste à l'intérieur du dossier lib. La commande d'exécution Flutter fonctionnera alors à coup sûr.

Cela a fonctionné pour moi.

l'URL de main.Dart doit être: /lib/main.Dart

7
Munish Thakur

Si vous utilisez vscode ...

Lorsque l'erreur se produit, le dossier vscode apparaît dans la barre latérale. Il contient le fichier launch.json.

Vous pouvez modifier la propriété "program": "..." dans le fichier launch.json pour exécuter le fichier .Dart dans le répertoire où vous le souhaitez.

3
NewbieCoder

Cela s'est produit lorsque j'ai utilisé Visual Studio Code. J'ai résolu le problème en modifiant le .vscode/launch.json fichier et modifiez la valeur de "program" vers le chemin absolu de mon main.Dart fichier (par exemple C://...).

2
Steve Lukis

Si vous utilisez du code visuel et que vous rencontrez ce problème lors du débogage, accédez simplement à launch.json, accédez à l'emplacement de votre application flutter, dans le dossier lib, puis dans main.Dart, copiez le chemin d'accès, puis ajoutez au programme texte dans le launch.json comme indiqué sur la photo ci-dessous

chemin "programme" launch.json

2
Kefa Mutinda

Quel était mon cas, j'ai oublié d'écrire le code pour appeler le principal ...

void main()
{
  runApp......
}

Et cela a fonctionné

0
Sanjay Singh

Essayez final FlutterDevice flutterDevice = await FlutterDevice.create

La cause principale est que le ResidentRunner que nous utilisons pour attacher et effectuer des rechargements à chaud tentera de trouver un main.Dart fichier lorsqu'une cible n'est pas annoncée. Attach ne fournit pas de cible, il utilise donc toujours le comportement par défaut. Selon DaceShuckerow .

Ce problème est toujours là sur le officiel Repo .

0
champion-runner

Si vous utilisez VSCODE

Vérifiez le dossier . Vscode> launch.json et ajoutez la configuration:
si vous l'avez déjà changer un "programme": "chemin de l'exemple main.Dart: lib/main.Dart"

 {
    "name": "Dart",
    "type": "Dart",
    "request": "launch",
    "program": "lib/main.Dart"
},
0

dans Android studio cela fonctionne pour moi

  1. clic droit dans le profil principal.
  2. cela exécute une application d'instantané pour configurer le profil racine et exécuter votre application

enter image description here

0
Robinson Calderón

Si vous utilisez VSCode, essayez cette méthode:
Supprimer .vscode dossier dans le répertoire de votre projet et réexécutez le programme.

0
Augustine Aykara

Utilisateurs VSCode: veuillez accéder à launch.json et remplacer la ligne "Programme" par ce qui suit:

"Program":"${rootProject.buildDir}/${project.name}/lib/main.Dart"
0
Sukhi