【问题标题】:How can I run an example from a Flutter package/library?如何从 Flutter 包/库中运行示例?
【发布时间】:2019-05-16 01:52:09
【问题描述】:

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

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

我可以运行第一个,但不能运行network_to_file_image 下的example 目录中的那个。第二个给我这个错误:

   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.

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

【问题讨论】:

    标签: flutter flutter-dependencies flutter-test


    【解决方案1】:

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

    发布站点在如何在示例目录中查找内容以显示在 Example 选项卡中的方式受到限制。

    【讨论】:

    • 所以当你开发包时,你实际上需要在其他地方创建示例,然后将其复制到那里?
    • 是的,将其复制到示例中,它将显示在网页上。对此问题进行了一些讨论,但找不到。
    【解决方案2】:

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

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

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

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


    更新:

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

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

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

      async_redux:
        path: ../
    

    【讨论】:

    • 如何使用已经提供的main()“在示例目录中创建一个完整的 Flutter 应用程序类型的项目”?我在那里运行flutter create,或者...?
    • @KarolinaHagegård 只需创建 Flutter 应用项目,并将您的 main.dart 文件放在那里。
    • 好吧,这绝对不是真的。我需要将示例文件夹中的所有内容都放在那里,而不仅仅是main.dart。我这样做了,替换了所有具有相同名称的文件,是的,它建立了......我仍然怀疑必须有一种不那么迂回的方式来做到这一点!一个不涉及创建大量我将要替换的文件...
    • 是的,当然我的意思是那里的示例中的所有内容。通常这个例子只是一个 main.dart 文件,但是如果你把它分成更多的文件,那么你必须把它们都放在那里。但是你的包本身(例子正在使用)你不需要放在那里。您只需从示例的 pubspec.yaml 中引用它。我将更新我的答案。
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2020-10-29
      • 2020-07-19
      • 2022-01-17
      • 1970-01-01
      • 2019-10-23
      • 2017-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多