如何 create/provide 一个 flutter 插件的多个示例应用程序?

How to create/provide multiple example apps for a flutter plugin?

Flutter 似乎有一个非常 strict/rigid 的插件结构,其中包含 example 文件夹和该文件夹中的所有内容。

我想为我的插件提供多个示例。类似于 examples 文件夹,然后是 examples/demo1examples/demo2 作为两个不同的应用示例。

我试过这样做,但 flutter runpub get 命令因此更改而中断。它卡在了以下错误中,该错误在更改之前没有用与先前结构中完全相同的代码抛出。另外我的应用程序实际上遵循嵌入 v2 代码,所以这个错误也是完全错误的。

The plugin `<MY PLUGIN>` requires your app to be migrated to the Android embedding v2. Follow the steps on
https://flutter.dev/go/android-project-migration and re-run this command.

不知怎么的,它期望只有一个例子,而且只有 example 文件夹吗?

有人可以提供帮助吗?如果可能的话,请指点我使用多个示例的插件项目?

在尝试了多种处理方式后,

我最终找到了一个足够好的解决方案。

我将整个 flutter repo 移动到 sdk 目录中,然后在 root 级别引入了一个 samples 文件夹,其中可以包含多个示例应用程序。

sdk 本身在 example 文件夹下有一个默认的示例应用程序,我保留了它以便 sdk 可以与一个示例项目一起发布。

最终结构如下所示,

- Root
  - sdk
    - Flutter plugin project (like android/example/ios/lib directory etc.)
  - samples
    - sampleOne
    - sampleTwo

然后我在他们的 pubspec.yaml 中提到 sampleOnesampleTwo 的 sdk 相对路径,例如 path: ../../sdk/

当我想在 AndroidStudio 中打开 sampleOne 时,我导入 sampleOne 目录,它就像魅力一样。确保您没有导入整个 samples 目录或 sampleOne/Android.

对于插件的任何常规 Flutter 命令,我 运行 它们都在 sdk 目录中,一切都按预期正常工作。所以我会在 root/sdk 目录

中 运行 publishpub get