Flutter 颤振:目标文件“;lib/main.dart“;找不到
当我执行颤振运行时会出错 找不到目标文件“lib/main.dart”Flutter 颤振:目标文件“;lib/main.dart“;找不到,flutter,flutter-dependencies,flutter-test,Flutter,Flutter Dependencies,Flutter Test,当我执行颤振运行时会出错 找不到目标文件“lib/main.dart” 为什么会发生这种情况?我如何解决这个问题?flatter正在lib文件夹中查找main.dart,而您必须在任何其他包中都有文件 最好的解决方案是将main.dart文件放在lib文件夹中。“颤振运行”命令肯定会起作用 这对我很有效。 main.darturl应为: <app dir>/lib/main.dart /lib/main.dart 如果设置了目标文件路径,则可以从任何目录运行任何文件,例如: flu
为什么会发生这种情况?我如何解决这个问题?flatter正在
lib
文件夹中查找main.dart
,而您必须在任何其他包中都有文件
最好的解决方案是将main.dart
文件放在lib
文件夹中。“颤振运行”命令肯定会起作用
这对我很有效。
main.dart
url应为:
<app dir>/lib/main.dart
/lib/main.dart
如果设置了目标文件路径,则可以从任何目录运行任何文件,例如:
flutter run -t lib/main_dev.dart
或
更新(2020年2月5日)
但是,不建议从项目中删除main.dart
我相信你们中的大多数人都找到了这个链接,因为你们正在设置/配置你们的应用程序,以适应不同的环境,例如开发、stg、测试版和产品
例如:
主要开发工具dart:
void main() async {
dynamic configuredApp = AppConfig(
appName: 'Flutter',
flavorName: 'development',
appVersion: 1.0,
apiBaseUrl: 'https://dev-api.example.com/'
);
runApp(App(configuredApp));
}
主飞镖
class App extends StatefulWidget {
final dynamic configuredApp;
App(this.configuredApp);
@override
_AppState createState() => _AppState();
}
事实证明,如果在此文件中没有引用main.dart文件和方法main(){},那么在Android Studio中,一些构建步骤将失败,这些步骤主要与Gradle相关
- 常见生成错误(AndroidX迁移、APK生成等)
- 以下与颤振构建错误相关的更多信息/解决方案:以非零退出值1结束
颤振运行的替代方案-t lib/main\u dev.dart
在VS代码中使用调试器工具
- 单击“添加配置”并添加以下内容或手动添加:
"configurations": [
{
"name": "Flutter",
"request": "launch",
"type": "dart",
// "args": ["--enable-software-rendering"]
// "flutterMode": "profile", //debug //release
"program": "${workspaceFolder}/lib/main_dev.dart"
}
]
希望这有帮助。如果您正在使用vscode 发生错误时,vscode文件夹出现在侧栏中。它包含launch.json文件
您可以更改launch.json文件中的“程序”:“…”属性,以在所需目录中运行.dart文件。这是在我使用Visual Studio代码时发生的。我解决这个问题的方法是编辑
.vscode/launch.json
文件,并将“program”
的值更改为我的main.dart
文件的绝对路径(例如C://…
)。<,
只需转到launch.json,转到您的flatter应用程序所在的位置,到lib文件夹,然后到main.dart,复制路径,然后将其添加到launch.json中的文本程序,如下图所示
VSCode用户:请导航到launch.json并用以下内容替换“程序”行:
"Program":"${rootProject.buildDir}/${project.name}/lib/main.dart"
在安卓工作室,这是我的工作
如果您在
vs code
中使用调试模式
,请确保vs code
工作文件夹是您的flatter
项目主文件夹
如果要更改vs code
工作文件夹,可以使用File>openfolder
菜单或Ctrl+O
快捷方式
当我更改文件夹时,它对我有效我的案例是什么
我忘记写调用main的代码了
void main()
{
runApp......
}
这样做很有效尝试
最终颤振装置颤振装置=等待颤振装置。创建
根本原因是,我们用于附加和执行热重新加载的ResidentRunner会在未宣布目标时尝试查找main.dart
文件。Attach不提供目标,因此它始终使用默认行为。根据
如果您使用的是VSCODE,则此问题仍然存在于官方上
检查文件夹.vscode>launch.json并添加配置:
如果您已经更改了“程序”:“main.dart的路径示例:lib/main.dart”
{
“名称”:“飞镖”,
“类型”:“省道”,
“请求”:“启动”,
“程序”:“lib/main.dart”
},
如果您使用的是VSCode
,请尝试以下方法:删除项目目录中的.vscode文件夹,然后重新运行该程序。因此基本上在执行此操作时
flutter run
颤振试图在/lib
目录中找到main.dart
因此,如果您有一个文件存在于/lib
目录的其他子目录中,或者具有不同的名称,如result\u page.dart
,则会遇到此错误。
现在,很多答案都建议将文件重命名为main.dart
,或者将其直接移动到/lib
目录下
但实际上,您只需提供当前目录中目标文件的路径即可运行任何文件,如下所示-
flutter run --target=lib/customization/result_screen.dart
flutter build apk --target=lib/customization/result_screen.dart --target-platform=android-arm64
因此,这只需执行我的result\u screen.dart
文件,该文件位于另一个名为customization
的子目录下
您还可以按照相同的逻辑生成APK文件,命令如下所示-
flutter run --target=lib/customization/result_screen.dart
flutter build apk --target=lib/customization/result_screen.dart --target-platform=android-arm64
其中,
--target platform=android-arm64
是可选的,适用于64位android设备,这有助于减小APK大小,否则将生成一个包含32位和64位二进制文件的胖APK。更多信息如果您有多个iOS方案,您可以这样尝试:
flatterrun--flavor UserDev-t lib/user/dev/main\u dev.dart
因为
如果有人正在努力解决这个问题,我的工作就是重新创建ios文件夹。和-t的工作方式与目标的位置或目标的名称无关,并且不需要在lib文件夹中包含main.dart 重新创建ios文件夹的步骤
- 将ios文件夹重命名为类似ios\u old的名称
- 运行=>Flatter创建fakeApp
- 打开fakeApp,复制