6

我有以下简单的目录结构:

flutter_published
    .idea
    android
    build
    ios
    lib
        main.dart 
    flutter_published.iml
    pubspec.lock
    pubspec.yaml
    network_to_file_image
        .idea
        example
            main.dart 
        lib
            network_to_file_image.dart
        test
        network_to_file_image.iml
        pubspec.lock
        pubspec.yaml

network_to_file_image是一个包。

有两个main.dart files,一个在flutter_published/lib/main.dart,一个在flutter_published/network_to_file_image/example/main.dart

我可以运行第一个,但不能example运行network_to_file_image. 第二个给我这个错误:

   Launching example\lib\main.dart on Android SDK built for x86 in debug mode...
   No application found for TargetPlatform.android_x86.
   Is your project missing an android\AndroidManifest.xml?
   Consider running "flutter create ." to create one.

另外,当应用程序生成时,我使用的包的目录example和目录会发生什么?test它们是从最终部署的应用程序中包含还是删除?

4

3 回答 3

5

为了解决这个问题,您需要在目录内创建一个完整的 Flutter 应用程序类型项目,而不是目录内的main.dart文件。然后,示例选项卡将指向该目录内的文件。exampleexampleREADME.md

example目录将有自己的lib目录,其中包含一个main.dart文件。由于该文件现在位于应用程序类型目录中,因此可以运行它。

访问这个 repo 看看它是如何工作的:

https://github.com/marcglasberg/async_redux/tree/master/example


更新:

需要明确的是,示例的pubspec.yaml文件可以通过使用相对引用来引用其包。例如,这是我提到的包dependenciesexample目录部分:async_redux

dependencies:
  http: ^0.13.1
  async_redux:
    path: ../
  flutter:
    sdk: flutter

由于exampledir 与包的pubspec.yaml文件处于同一级别,因此示例自己pubspec.yaml的级别低于它。因此,它可以通过使用../路径来引用包本身:

  async_redux:
    path: ../
于 2019-11-24T17:06:11.343 回答
2

example/main.dart仅存在于https://pub.dartlang.org/packages/network_to_file_image#-example-tab-中显示

pub 站点受限于如何在示例目录中查找内容以显示在Example选项卡中。

于 2018-12-14T20:53:06.810 回答
0

cd 到目录并执行flutter create .. 之后您应该可以运行它

于 2021-07-19T21:00:43.073 回答