如何在flutter中将另一个包中的类或函数调用到另一个包?

Posted

技术标签:

【中文标题】如何在flutter中将另一个包中的类或函数调用到另一个包?【英文标题】:How to call class or functions in another packages to another packages in flutter? 【发布时间】:2019-11-15 00:28:44 【问题描述】:

我有一个这样的结构项目:

我尝试在 Flutter 上实现 modularization,就像在 android 本机(Java 和 Kotlin)上实现 separate 之间的 functions 并加快构建过程并简化未来 maintenance

在图片中,有一个名为“cari_mobile_flutter_main”的root project和两个名为“cari_news”和“cari_network”的flutter包。我设法通过setting2 packagesroot project 连接起来,将root project 中的pathpubspec.yaml 连接起来。这样根目录下的lib文件夹就可以从both packagesaccess/callclassfunctions

问题是how can each package be connected so that they can call each other's class or function? 例如:“cari_news”可以调用“cari_network”中的classfunctions。能做到吗?

因为我尝试在包之间设置path上的path却不行,出现这样的错误:

我已经尝试点击右上角的“packages get”,得到如下结果:

在 cari_news 中运行“flutter packages get”... 因为 cari_news 依赖于路径中的 cari_network 而不是 存在(在“cari_network”中找不到包 cari_network),版本 解决失败。 pub get failed (66) Process finished with exit code 66

我尝试将cari_networkcari_news 链接,以便cari_news 包可以调用cari_network 包中的classfunctions。但那不可能。谁能帮帮我?

【问题讨论】:

已经有一个类似的线程。如果可行,请尝试解决方案。 ***.com/questions/51238420/… 我已经试过了,但是像上图那样在包里设置路径还是不行 【参考方案1】:

我的错误,对于我的问题的答案,我只是将../cari_network 添加到path 部分。因为cari_network 包的位置在root 项目中,而cari_newsroot 项目中,而pubspec.yamlcari_news 包中。所以要找到cari_network 包,只需添加一个../ 即可。

【讨论】:

以上是关于如何在flutter中将另一个包中的类或函数调用到另一个包?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Firestore -Flutter 中将所有文档从一个集合复制到另一个集合?

只能被自己的类或其他子类调用的Java方法

如何从另一个页面调用flutter中的函数

Java 包(package)

Java 包(package)

Java 包(package)