当我执行颤动时,我收到错误
找不到目标文件“lib / main.dart”。
为什么会发生这种情况?我该如何解决这个问题?
答案 0 :(得分:10)
只要设置了目标文件路径,就可以从任何DIR运行任何文件,例如:
flutter run -t lib/main_dev.dart
OR
flutter run lib/dev/main_dev.dart
答案 1 :(得分:3)
如果您使用的是vscode ...
发生错误时,侧边栏中将出现vscode文件夹。它内部具有launch.json文件。
您可以更改launch.json文件中的“ program”:“ ...” 属性,以在所需目录中运行.dart文件。
答案 2 :(得分:3)
Flutter正在寻找lib文件夹中的main.dart,而你必须在任何其他包中包含文件。
最佳解决方案是将main.dart文件放在lib文件夹中。 Flutter run命令肯定会起作用。
这对我有用。
main.dart网址应为:/lib/main.dart
答案 3 :(得分:2)
这是在我使用Visual Studio Code时发生的。解决该问题的方法是编辑.vscode/launch.json
文件,并将"program"
的值更改为我的main.dart
文件的绝对路径(例如C://...
)。>
答案 4 :(得分:1)
如果您使用的是可视代码,并且在调试时遇到此问题, 只需转到launch.json,移至您的flutter应用程序所在的位置,再移至lib文件夹,再移至main.dart,复制路径,然后将其添加到文本框中的 program 如下图所示
答案 5 :(得分:1)
基本上,当您执行此操作
flutter run
Flutter尝试在main.dart
目录中找到/lib
。
因此,如果您的文件存在于/lib
目录的某个其他子目录中,或者具有诸如result_page.dart
之类的其他名称,则会遇到此错误。
现在,很多答案都建议您将文件重命名为main.dart
或直接将其移动到/lib
目录下。
但是实际上,您只需提供当前目录中目标文件的路径,就可以简单地运行任何文件-
flutter run --target=lib/customization/result_screen.dart
因此,这将简单地执行我的result_screen.dart
文件,该文件位于其他名为customization
的子目录下。
您还可以按照相同的逻辑生成APK文件,命令如下所示-
flutter build apk --target=lib/customization/result_screen.dart --target-platform=android-arm64
其中--target-platform=android-arm64
是可选的,并且用于64位Android设备,这有助于减小APK大小,否则将生成包括32位和64位二进制文件的胖APK。更多信息here
答案 6 :(得分:0)
答案 7 :(得分:0)
我有一个类似的错误信息,这是因为我不小心删除了 void main()
答案 8 :(得分:0)
如果有人为此而苦苦挣扎,对我有用的是重新创建 ios 文件夹。无论目标的位置或目标的名称如何,-t 都可以工作,并且不需要在 lib 文件夹中包含 main.dart。
重新创建ios文件夹
答案 9 :(得分:0)
如果您有多个iOS方案,则可以尝试如下操作:
flutter run --flavor UserDev -t lib/user/dev/main_dev.dart
对于
"configurations": [{
"name": "User-Dev",
"request": "launch",
"type": "dart",
"program": "lib/user/dev/main_dev.dart",
"args": [
"--flavor",
"UserDev"
]
}]
答案 10 :(得分:0)
如果您使用的是VSCode
,请尝试以下方法:
删除项目目录中的.vscode 文件夹,然后重新运行程序。
答案 11 :(得分:0)
检查文件夹 .vscode> launch.json 并添加配置:
如果已经更改了“程序”:“ main.dart示例的路径:lib / main.dart”
{
"name": "Dart",
"type": "dart",
"request": "launch",
"program": "lib/main.dart"
},
答案 12 :(得分:0)
尝试final FlutterDevice flutterDevice = await FlutterDevice.create
根本原因是,我们用于附加并执行热重装的 ResidentRunner 会在未宣布目标时尝试找到main.dart
文件。 Attach不提供目标,因此它始终使用默认行为。按照DaceShuckerow。
官方 Repo上仍然存在此问题。
答案 13 :(得分:0)
我的情况是 我忘记编写用于调用main的代码。...
void main()
{
runApp......
}
并且这样做有效
答案 14 :(得分:0)
在android studio中,这对我来说很幸运
这将执行快照操作以配置根配置文件以运行您的应用程序
答案 15 :(得分:0)
VSCode用户:请导航到launch.json并用以下内容替换“ Program”行:
"Program":"${rootProject.buildDir}/${project.name}/lib/main.dart"
答案 16 :(得分:-1)
如果您在Debug Mode
中使用vs code
,请确保vs code
工作文件夹是您的Flutter
项目主文件夹。
如果要更改vs code
工作文件夹,可以使用File > Open Folder
菜单或Ctrl+O
快捷方式。
当我更改文件夹时,它对我有用。