flutter - 如何为颤振插件创建/提供多个示例应用程序?
问题描述
example
对于带有文件夹的插件以及该文件夹内的所有内容,Flutter 似乎具有非常严格/刚性的结构。
我想用我的插件提供多个示例。像文件夹这样的东西,examples
然后是两个不同的应用程序示例。examples/demo1
examples/demo2
我尝试这样做,但flutter run
或pub 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
只有文件夹?
有人可以帮忙吗,如果可能的话,请指点我一个使用多个示例的插件项目?
解决方案
在尝试了多种方式来处理这种情况后,
我最终得到了一个足够好的解决方案。
我将整个颤振 repo 移动到一个sdk
目录中,然后在一个可以包含多个示例应用程序samples
的级别引入了一个文件夹。root
sdk
它本身在我保留的文件夹下有一个默认示例应用程序,example
因此 sdk 可以随一个示例项目一起提供。
最终结构如下所示,
- Root
- sdk
- Flutter plugin project (like android/example/ios/lib directory etc.)
- samples
- sampleOne
- sampleTwo
然后我提到了 sdk 的相对sampleOne
路径sampleTwo
pubspec.yaml
path: ../../sdk/
当我想打开sampleOne
时AndroidStudio
,我导入sampleOne
目录,它就像魅力一样。确保您没有导入整个samples
目录或sampleOne/Android
.
For any regular Flutter commands for plugin, I run them inside sdk
directory and everything works fine as expected. So I would run publish
or pub get
inside root/sdk
directory
推荐阅读
- powershell - 在 Powershell 中,输出文件不会从 start-job 和 invoke-command 重定向 write-host
- java - 为什么我的 Java 复制构造函数没有返回新对象的填充值?
- python - 线性回归中 MSE 和 RMSE 的计算
- php - PHP API - Nginx 给了我无效的数据类型标头
- typescript - 导出 Typescript 接口 / vs-code 抱怨,但 tsc 很好
- linux - Linux - 优化多个文件夹中的 shell 脚本计数文件
- c++ - 成员函数指针可以引用几个不同类之一的方法吗?
- regex - 如何使用正则表达式将字符串的一部分捕获到组中?
- email - 尝试自动发送通过应用程序脚本创建的 Google 文档的电子邮件
- r - 在 R 向量中插入以前的日期