【问题标题】:How do I create a pure Dart package for a Flutter app?如何为 Flutter 应用创建纯 Dart 包?
【发布时间】:2019-04-17 08:10:03
【问题描述】:

我正在尝试创建一个纯 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.* 文件吗?如果没有,我是否必须将它们提交到源代码管理?

【问题讨论】:

    标签: flutter


    【解决方案1】:

    对于纯 dart 包,您只需要一件事: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
    

    【讨论】:

      【解决方案2】:

      你可以用命令行来做:

      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
      

      【讨论】:

        猜你喜欢
        • 2019-03-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-26
        • 2019-09-20
        • 2017-12-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多