如何在另一个 flutter 应用程序中使用本地 flutter 包?

how to use local flutter package in another flutter application?

如何在另一个flutter应用中使用本地的flutter包?

我使用以下命令创建了一个包:

flutter create --template=package my_new_package

然后在我的应用程序源代码中 => main.dart

import "package:my_new_package/my_new_package.dart" // can not find the package

在你的 flutter 应用程序中找到这个文件 => pubspec.yaml

使用本地依赖

    dependencies:
       flutter:
         sdk: flutter
       my_new_package:
         path: ./my_new_package

注意:上面的./my_new_package表示包含pubspec.yaml包的my_new_package目录是应用程序的子目录。

如果您将包作为与应用程序处于同一级别的目录,换句话说,在目录树中更高一级,您可以使用 ../my_new_package(注意双点)或完整包目录的路径。

路径依赖:Flutter 应用程序可以通过文件系统路径依赖插件:依赖。路径可以是相对的也可以是绝对的。例如,要依赖位于应用旁边目录中的插件 plugin1,请使用以下语法:

dependencies:
  plugin1:
    path: ../your_package/

完整流程:

  1. 下载您要使用的插件代码,并将其放在与您的 flutter 项目目录“相同”的级别

     -- plugin-name  
     -- your flutter directory -- lib
                               -- android
                               -- ios etc etc
    
  2. 将插件路径添加到pubspec.yaml。 *如果您不确定要使用的插件名称是否正确,请查看插件 pubspec.yaml 文件中的 name: 属性。插件目录也必须保存相同的name:

    dependencies:
     plugin-name:
       path: ../plugin-name
    
  3. 运行 Pub get 并且您可以像导入任何其他插件一样导入。唯一不同的是当你在开发过程中点击任何一个插件类,它会指向本地文件。

嘿,我在开始使用 flutter 后遇到了同样的问题。 我在我的应用程序中实施了 pdf_view 插件示例,用于更改微光效果而不是 CircularProgressIndicator()

一些知识

You can edit plugins which are get by flutter pub get but they might be replaced when you create app bundle by flutter.

现在你对示例插件的回答假设以 advance_pdf_viewer 为例 GitHub Link

  1. 下载 zip 文件并将其解压缩到 pdf_viewer/

  2. 确保 pdf_viewer/ 拥有所有文件,包括 libAndroidiOS 和所有相关文件。

  3. 例如,
  4. 复制项目目录中的 pdf_viewer 文件夹 我的项目是 invoice_viewer 所以它的根目录有所有文件夹,例如 lib、Android、iOS 等。将它与 lib 一起复制到这个根目录中, Android, iOS.

  5. 现在打开你的pubsec.yaml并编写如下代码

dependencies:
  flutter:
    sdk: flutter

  #  advance_pdf_viewer: ^2.0.0
  advance_pdf_viewer:
    path: ./pdf_viewer
  1. 在评论中,我已将服务器版本替换为本地版本,并在插件的 viewer.dart 文件中进行更改以实现所需的更改。

希望您和其他人从这一发现中得到一些信息!