问题标签 [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 投票
5 回答
6676 浏览

android - 如何在 Koin 的检测测试中注入使用 androidContext 的类?

我的一个类具有 Context 类型的依赖项。在将 Koin 添加到我的项目之前,我使用对我的 Application 类的硬依赖对其进行了初始化:

现在,我想使用 Koin 来注入这个依赖。这就是我定义模块的方式:

我在onCreate我的 Application 类(用 Java 编写)的方法中启动 Koin:

我想用仪器测试而不是单元测试来测试这个类,因为我想使用真实的上下文而不是模拟。这是我的测试:

测试失败,但出现异常:

如果我像这样模拟上下文,我可以让它与单元测试一起工作:

我怎样才能使它作为一个具有真实上下文的仪器测试工作?

0 投票
1 回答
578 浏览

android - 具有多个声明的 Koin 范围?

根据这篇文章https://insert-koin.io/docs/1.0/getting-started/android-scope/我们可以为我们的对象创建范围。这是那里给出的一个例子。

我的问题是我们是否允许在每个范围内放置多个定义?我觉得我们不是。任何地方都没有例子表明这一点。

这行不通。我只能注入 AnotherThing() 而没有注入某些东西。

为什么 Koin 只允许每个范围有一个定义?

0 投票
1 回答
552 浏览

android - 重新打开应用程序时出现“org.koin.error.BeanOverrideException”错误

我通过以下文档在模块化应用程序上使用 Koin 。我打电话给我的核心模块:startKoinBaseApplication

应用

并通过以下方式在其他模块中加载一些其他模块loadKoinModules

首次运行时一切正常,但是当我重新打开应用程序时,出现此错误:

有没有办法摧毁 Koin 或任何其他方法来解决这个问题?

0 投票
1 回答
2950 浏览

android - Koin Kotlin - 如何在 Activity 之外使用注入/获取

我目前正在尝试将Koin实现到我的 Android 应用程序中。它在我可以访问get()或的活动中运行良好inject(),但在这些类之外我无法使用它们。

例如,我有一个非常简单的类Device,它只会创建用户设备的一个对象。我需要MyStorage在那里获得参考。

get()在此类中不起作用,并且手动添加导入也无济于事。

我也看到了这个答案,https://stackoverflow.com/a/49629378/3106174,它有扩展KoinComponent,但在这种情况下或我遇到的其他情况下不起作用,例如任何类之外的顶级函数。

任何提示将非常感谢。谢谢。

0 投票
0 回答
621 浏览

android - 尝试在 Kotlin Android 应用程序中测试 ViewModel 注入时出现 Koin NullPointerException

我正在尝试在测试中测试 ViewModel 是否已成功将存储库注入其中。但是,我得到了一个 NPE。该代码适用于实际应用程序,而不是测试。我认为它没有正确找到我的 ViewModel。

这是代码:

科恩日志:

NPE:

0 投票
1 回答
209 浏览

koin - KoinComponent 中的 Koin geProperty() 未解决

Koin 2.0.0-beta-1

我只能在 Appmodule 中获取属性(“SERVICE”)。在Activity、Fragment、ViewModel、Service中,不能使用getProperty。

测试版有什么变化吗?

0 投票
0 回答
462 浏览

java - 如何在kotlin koin中注入抽象类使用接口

我在 Abstract BaseActivity 中创建 Abstract BaseActivity 和 Abstract BaseActivity 实现接口 Navigator 和 Navigator 所有方法覆盖。

所以我的问题是如何在另一个活动中注入 Navigator 类?

像这样 : val navigator by inject<Navigator>()

0 投票
2 回答
424 浏览

android - Kotlin 1.0.2 房间数据库

我正在使用 koin 1.0.2 来管理依赖项注入,但它不适用于房间数据库,它返回 can't create definition for single ... 这是我的代码:

0 投票
0 回答
198 浏览

spring - Koin中的Spring Application Context相当于什么

我是 Koin 和 Kotlin 的新手。我正在开发一个客户端/服务器应用程序(双方)。有几个豆子。有些应该为服务器和客户端进行不同的配置,有些可以在两者中进行类似的配置。其实我有两个问题:

  1. 在 Spring 术语中,我想定义两个不同的应用程序上下文,每个上下文都带有一组必要的 bean。我认为在单个 JVM 中运行客户端和服务器时,即使服务器和客户端中的类似 bean 也应该是不同的实例(出于测试目的)
  2. 我想知道 Koin 中的 spring 应用程序上下文的等价物是什么?
0 投票
2 回答
3788 浏览

android - Android Koin NoBeanDefFoundException 仅在应用程序的发布版本中

在 Debug 版本中它工作正常,但在 Release 版本中失败。我想这与 Proguard 规则有关。

模块:

类定义:

Koin 初始化:

保护规则:

堆栈跟踪: