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

android - Koin 如何在 Android 活动 / appcompatactivity 之外注入

Koin是一个新的轻量级 DI 库,可用于 Android 以及独立的 kotlin 应用程序。

通常你注入这样的依赖:

inject()方法。

但是在 Activity 上下文不可用的地方(即在 Activity 之外)注入东西呢?

0 投票
6 回答
7991 浏览

java - 在 Java 类中注入 Koin

我正在尝试在我当前的项目中将 Dagger 2 替换为Koin,并且我不想在 Kotlin 中重写一些类来使用它。

是否可以在 Java 类中注入 Koin?

在 Kotlin 中只是

谢谢

0 投票
2 回答
3232 浏览

kotlin - 如何在顶级函数中使用 koin 注入依赖项

我有顶级功能

该功能创建通知,有时通知可以包含图像,所以我必须下载它。我正在使用包裹在接口 ImageManager 上的 Glide,所以我必须注入它。我将 Koin 用于 DI,问题是我不能写

在我的代码中的某处,因为没有实现 KoinComponent 接口的东西。

最明显的解决方案是将已经注入的其他地方imageManager作为函数参数传递,但我不想这样做,因为在大多数情况下我不需要imageManager:它取决于Data参数的类型。

0 投票
1 回答
2927 浏览

android - 如何在 android 活动测试中模拟 koin 注入的 bean 并捕获作为该模拟参数给出的 lambda?

我花了很多时间寻找一种在 android 活动中模拟 Koin bean 的聪明方法。不幸的是,没有一个令人满意......直到 koin-1.0.0-alpha22 发布

谢谢@arnaudgiuliani。

完整的示例可以在这里找到AndroidTestKoin 示例项目

希望这有助于帕特里斯

0 投票
3 回答
21589 浏览

android - Koin Android:org.koin.error.NoBeanDefFoundException

收到该消息错误

但所有依赖项都是正确的。

我还注意到没有androidApplication()参数的模块可以正常工作。

代码如下:

ImageManager 完美运行

但首选项崩溃

0 投票
1 回答
8648 浏览

android - Koin vs Kodein - 依赖注入你更喜欢什么?科特林

你更喜欢 Kotlin 的 Android 依赖注入是什么?我已经开始使用 Kodein,但如果 Koin 更好,我不想浪费我的时间。

我已经阅读了 Makery Kotlin Development 的这个演示文稿https://www.kotlindevelopment.com/koin-vs-kodein/,它真的很棒。

从那个演示来看,这些是差异:

科登

  • 强大的
  • 大量功能
  • 很棒的文档
  • 更复杂的 API

科因

  • 较小
  • 较少的功能
  • 天然原料药

Github 明星 Kodein 1164 vs 1350 Koin


谢谢 !!

0 投票
1 回答
392 浏览

android - Android 如何用 Koin 实现 JobScheduler

我开始使用Koin作为服务定位器/DI,因为它易于实现。我面临一个问题:Evernote Jobscheduler

截至目前,我有以下代码:

在我的 SplashViewModel 上,我将我所有的工作都称为:

我有一个这样的工作创造者:

在我的 App 类上,我像这样创建 JobManager:

它运行良好,我所有的工作都是周期性的,每 15 分钟安排一次,一切都运行良好。(此结构遵循 Jobscheduler github 页面上的说明)

但是当开始使用 DI 和 Koin 时,进行了以下更改:

我的模块包含我需要的所有依赖项:

我的 Repository 单例实例现在由我的 Worker 的依赖项传递,而 Worker 作为我的更新作业的依赖项传递:

所以为了让它工作,我不得不改变我的 JobCreator 类:

并为此创建一个新模块:

奇怪的部分出现在 AppCoordinator 上,我创建了一个属性并注入它:

所以这:

变成了这样:

我像这样开始koin:

这确实是第一次。但是,当作业被重新安排并尝试再次执行时,我的应用程序崩溃并出现以下异常:

标签 FORCE_UPDATE_TAG 的作业已经运行,创建者应始终创建一个新的作业实例

关于我缺少什么的任何想法?

提前致谢

0 投票
1 回答
1069 浏览

android - 如何在 Koin 空运行测试中提供参数?

我的ViewModel需求repositorygenre通过构造函数。repository由 Koin 提供,genre字符串由活动提供

这里 Koin (v 0.9.3) injection inactivity 按预期工作,但由于找不到参数,试运行测试失败key.genre检查完整的错误日志

有什么方法可以模拟/为key.genre空运行测试提供价值?

完整的应用程序源

0 投票
2 回答
4233 浏览

android - Koin 范围和接口

我在我的项目中使用Koin di 库。lib 的版本是1.0.0-RC-1

我的模块

我在我的Application类中开始 koin 并创建了范围

接下来我尝试将Toaster的实现从当前范围注入 Activity 中的变量。这里的代码:

在此之后我得到一个错误:

我不明白为什么这不起作用(如果使用具有不同名称的单个- 它会起作用)。那是koin错误吗?如何避免这个错误?

0 投票
1 回答
183 浏览

android - 由于错误,无法创建 bean Bean[class=com.melayer.codekuladminpanel.login.data.LoginRepository]:

致命例外:主要