Flutter 颤振:目标文件“;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

当我执行颤振运行时会出错

找不到目标文件“lib/main.dart”


为什么会发生这种情况?我如何解决这个问题?

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代码中使用调试器工具

  • 单击“添加配置”并添加以下内容或手动添加:
.vscode/launch.json

  "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"

在安卓工作室,这是我的工作

  • 在main.dart中单击鼠标左键
  • 在profile 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,复制