问题标签 [koin]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2299 浏览

dependency-injection - 如何注入数据类

我遇到了数据类注入的问题。

数据类:

而 viewModel 需要这个数据类:

最后模块是:

但得到错误:

appModule 有什么问题?!

0 投票
1 回答
627 浏览

kotlin - 如何使用 Koin 创建具有运行时依赖项的实例?

在构建基于 Kotlin 的 HTTP 服务器时,我正在尝试使用 Koin。

我正在使用一个框架,您可以在其中通过扩展一些框架提供的抽象类来编写您想要的行为,并在组件生命周期的各个点填写您的实现逻辑(类似于 Android)。在组件生命周期的某个时刻,特定于框架的资源(公开为字段)被初始化并可供使用。

我的问题是我需要这个字段来创建从我的 Koin 模块返回的实例。

我想做的是这样的:

尽管“助手”直到组件生命周期的后期才被初始化,但上述内容不起作用。

我已经设法通过在 Koin 上下文中存储“帮助程序”然后在创建各种实例时从上下文中检索它来解决这个问题,但这感觉很笨拙和重复。我希望有一种更清洁的方法来解决这个问题。

0 投票
1 回答
2271 浏览

android - 解析 Koin 类的实例时出错

帮助解决问题!(((我有3个DI模块。natworkModule中有一个改造对象,viewModelModule中有所有viewModel,respositoryModule中有对服务器的所有请求。我按照文档做了一切,但我找不到这个谷歌错误。提前谢谢你!!!对不起我的英语!)

0 投票
2 回答
1823 浏览

android - BeanInstanceCreationException:无法为 Single 创建定义

我正在尝试使用Koin creator's example在 androidTest 文件夹下运行检测测试。如果我一个一个地运行它们,每个测试都会通过。但是当我一次运行它们时,只有第一次通过。其余的失败:BeanInstanceCreationException: Can't create definition for 'Single [name='MovieDatabase',...。这是我的测试:

错误堆栈跟踪:

这里还有我从应用程序实现non-testing启动的模块定义:startKoin(this, listOf(baseModule, movieDetailModule))

似乎它与movieDatabase.close()线路有关,但我无法弄清楚在测试之间工作的配置。

0 投票
1 回答
995 浏览

android - 是否可以使用动态功能模块和 Koin 构建项目?

我有一个具有不同模块的应用程序,但项目正在增长,我们需要将项目拆分为不同的动态功能模块,因为用户(可能)不需要所有功能。我的问题是 Koin 需要从 Application 类启动应用程序要加载的所有 koin 模块,但是从该类我不知道我必须加载哪些模块,并且 :app 模块不导入其他模块在 gradle 的依赖项中(其他模块必须实现 :app 模块)。我的问题是它是否是一种从 :app 中的 Activity 或其他加载的功能加载 Koin 模块的方法。

0 投票
3 回答
14655 浏览

android - 如何使用 Koin DI 将应用程序上下文从“app”模块注入“network”模块

我正在开发一个基于 Koin DI(版本:1.0.1)的应用程序,带有 2 个模块(:app 和:network)。我在 :network 模块中要求具有“上下文”。以下是我的实现方式:

问题:有什么方法可以直接将上下文发送到 :network 模块中的网络类?

0 投票
1 回答
771 浏览

android - 依赖图在 Koin 或 Kodein 中如何工作?

我有 Android/kotlin 多模块项目。我的一些模块是 Singletone,例如网络和分析模块。他们需要应用程序上下文才能被初始化。

我能够在app模块中初始化 Koin/Kodein。然而,问题是如何将inject应用程序上下文应用到每个模块中(因为应用程序模块对网络/分析模块不可见)。

基本上,我的应用程序模块仅与其他模块无关。

当我最近开始我的项目时,我正在评估 Koin 和 Kodein,看看哪一个能以我想要的方式帮助我。这就是为什么我愿意更换它们。

0 投票
1 回答
1963 浏览

android - 使用 Koin 进行依赖注入

我有一个使用 Dagger 2 进行依赖注入的类。现在我想切换到 Koin 进行依赖注入。Koin 中有模块,我想在课堂之外制作一个模块或任何可以做的事情。

0 投票
2 回答
543 浏览

java - 我可以从 java 中使用 Koin 的“by sharedViewModel”吗?

我有一个现有的 android java 项目,我正在为 DI 介绍 Koin。

在我的活动中,我一直在使用

我想在多个片段之间共享视图模型,所以想知道是否有一个等效于“by sharedViewModel()”的java来这样做?

0 投票
1 回答
1093 浏览

kotlin - SonarQube + Jacoco - 无法读取 Koin 模块测试覆盖率

我在尝试将 Jacoco 代码覆盖率导入声纳时遇到了一些问题,这发生在所有 Koin 模块上。

声纳版本: 7.5.0.20127

雅可可版本: 0.8.2

错误:

正因为如此,我的模块类的 o 覆盖率为 0%,但如果我查看 HTML 报告,它似乎工作正常:

Jacoco HTML 报告

这只发生在我的 Koin 模块上,我不确定问题是 Koin 的工作原理还是 Jacoco 和 Kotlin 之间的一些不兼容