如何为Flutter应用创建纯Dart程序包?

时间:2019-04-17 08:10:03

标签: flutter

我正在尝试创建一个纯Dart程序包,以在我的Flutter应用程序中使用。问题是,在构建我的应用程序时,库文件夹下会生成一些特定于Android和iOS的文件。我想知道这是错误还是已知功能?

我已经使用以下命令创建了项目:

flutter create -t package mypackage

例如,生成的文件GeneratedPluginRegistrant.java如下所示:

package io.flutter.plugins;

import io.flutter.plugin.common.PluginRegistry;

/**
 * Generated file. Do not edit.
 */
public final class GeneratedPluginRegistrant {
  public static void registerWith(PluginRegistry registry) {
    if (alreadyRegisteredWith(registry)) {
      return;
    }
  }

  private static boolean alreadyRegisteredWith(PluginRegistry registry) {
    final String key = GeneratedPluginRegistrant.class.getCanonicalName();
    if (registry.hasPlugin(key)) {
      return true;
    }
    registry.registrarFor(key);
    return false;
  }
}

我可以避免生成那些GeneratedPluginRegistrant。*文件吗?如果没有,我是否必须将它们提交给源代码管理?

2 个答案:

答案 0 :(得分:1)

对于纯飞镖包,您只需要一件事情:pubspec.yaml,并具有名称和环境限制:

name: my_package
environment:
  sdk: ">=2.0.0 <3.0.0"

这足以将my_package添加为flutter项目的依赖项:

dependencies:
  my_package:
    path: ../path/to/my_package/folder

答案 1 :(得分:1)

您可以通过命令行进行操作:

  1. pub的路径应在您的环境变量中设置,例如:

    C:\ Users \ UserName \ AppData \ Roaming \ Pub \ Cache \ bin;

  2. pub global activate stagehand

  3. mkdir dart_project

  4. cd dart_project

  5. stagehand package-simple

使用命令行生成它会为您生成一些代码,这将使您了解如何管理软件包。

您可以将此项目用作Flutter或Angular-Dart项目的pubspec.yaml文件中的依赖项,如下所示:

dependencies:
  dart_project:
    path: ../path/to/dart_project