web-dev-qa-db-ja.com

Flutter:ターゲットファイル「lib / main.Dart」が見つかりません

フラッターランを実行するとエラーが発生する

ターゲットファイル「lib/main.Dart」が見つかりません。

なぜこれが起こっているのですか、どうすれば修正できますか?

16

ターゲットファイルパスを設定した場合、任意のDIRから任意のファイルを実行できます。例:

flutter run -t lib/main_dev.Dart

OR

flutter run lib/dev/main_dev.Dart

更新(2020 2月5日)

ただし、プロジェクトからmain.Dartを削除することはお勧めできません。

さまざまな環境に対応するようにアプリを設定/構成しているため、ほとんどの人がこのリンクを見つけたと思います。 dev、stg、beta、prod。

例:

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();
}

このファイル内でmain.Dartファイルとメソッドmain(){}が参照されていない場合、一部のビルドステップがAndroid StudioのほとんどがGradle関連で失敗することがわかります。

  • 一般的なビルドエラー(AndroidXの移行、APKビルドなど)
  • フラッタービルドエラーに関連する以下の詳細/解決策:非ゼロの終了値1で終了

    1. issuecomment
    2. issuecomment
    3. issuecomment

デバッガーツールを使用したVSコードのflutter run -t lib/main_dev.Dartの代替。

  • 「構成の追加」をクリックして、以下を追加するか、手動で追加します。

.vscode/launch.json

  "configurations": [

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

お役に立てれば。

35
Elroy

Flutterはlibフォルダーでmain.Dartを探していますが、他のパッケージ内にファイルがあったはずです。

最善の解決策は、main.Dartファイルをlibフォルダー内に配置することです。フラッター実行コマンドは確実に機能します。

それは私のために働いた。

main.DartのURLは次のとおりです:/lib/main.Dart

7
Munish Thakur

Vscodeを使用している場合...

エラーが発生すると、サイドバーにvscodeフォルダーが表示されます。中にはlaunch.jsonファイルがあります。

Launch.jsonファイルの"program": "..."プロパティを変更して、目的のディレクトリで.Dartファイルを実行できます。

3
NewbieCoder

これは、Visual Studio Codeを使用したときに発生しました。問題を解決するために私がしたことは、.vscode/launch.jsonファイルを編集し、"program"の値をmain.Dartファイルの絶対パスに変更することでした(例:C://...)。

2
Steve Lukis

ビジュアルコードを使用していて、デバッグ中にこの問題が発生した場合は、launch.jsonに移動し、flutterアプリが配置されている場所に移動し、libフォルダーに移動してから、main.Dartに移動し、パスをコピーして追加します下の写真に示すように、launch.jsonのテキストprogramにそれを追加します

launch.json "プログラム"パス

2
Kefa Mutinda

私の場合は、mainを呼び出すためのコードを書くのを忘れていました...

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

そして、これはうまくいきました

0
Sanjay Singh

final FlutterDevice flutterDevice = await FlutterDevice.createをお試しください

根本的な原因は、アタッチしてホットリロードを実行するために使用するResidentRunnerが、ターゲットが見つからない場合にmain.Dartファイルを見つけようとすることです。発表した。アタッチはターゲットを提供しないため、常にデフォルトの動作を使用します。 DaceShuckerow のとおり。

この問題はまだofficialRepo にあります。

0
champion-runner

VSCODEを使用している場合

フォルダー。vscode> launch.jsonを確認し、構成を追加します。
すでに変更している場合"program": "main.Dartのパスの例:lib/main.Dart"

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

Androidスタジオでこれは私のために働きます

  1. プロファイルmain.Dartを右クリック
  2. これはスナップショットアプリケーションを実行してルートプロファイルを構成し、アプリを実行します

enter image description here

0

VSCodeを使用している場合は、次の方法を試してください。
プロジェクトディレクトリーの.vscodeフォルダーを削除し、プログラムを再実行します。

0

VSCodeユーザー:launch.jsonに移動して、「Program」行を次のように置き換えます。

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