android - Koin java.lang.NoClassDefFoundError:解析失败:Lorg/koin/dsl/context/ParameterHolderKt
问题描述
我有一个带有 MVVM 的简单 Android 项目,我正在使用 Koin。这些是我在 gradle 中的版本和依赖项:
构建.gradle
// Koin
implementation "org.koin:koin-core:2.0.1"
implementation "org.koin:koin-android:2.0.1"
implementation "org.koin:koin-androidx-viewmodel:2.0.1"
implementation 'org.koin:koin-androidx-scope:2.0.1'
implementation "org.koin:koin-android-architecture:0.9.3"
我的模块是这样的:
电影模块
val moviesModule = module {
viewModel { MoviesListViewModel(get()) }
single { createMoviesRepository(get()) }
single { createMoviesInteractor(get(), get()) }
}
在片段中,我像这样实例化我的 viewModel:
private val viewModel by viewModel<MoviesListViewModel>()
但是由于某种原因,当我运行该应用程序时,该应用程序崩溃并显示以下内容
java.lang.NoClassDefFoundError:解析失败:Lorg/koin/dsl/context/ParameterHolderKt;
我不知道有什么问题。
解决方案
经过一番研究,我想通了。看来问题是视图模型的导入。我正在使用:
import org.koin.android.architecture.ext.viewModel
它应该是:
import org.koin.androidx.viewmodel.ext.android.viewModel
现在项目正在运行:)
推荐阅读
- javascript - 路由和路由处理程序之间的函数未按预期执行
- c++11 - 用于对索引数组进行升序和降序排序的 C++ 代码
- arrays - 将结构数组转换为字符串数组以显示为表格
- django - Django Restapi - 如何测试 POST 是否将数据保存在数据库中?
- c++ - 在多对多关系中查找两个不相关对象的最快方法以及在 C++ 中的实现
- javascript - Passport js 中的 isAuthenticated() 总是返回 false
- html - 在 CSS 中使元素非矩形以编写文本
- python - 将一个非常大的矩阵从 n^2 x 3 并行转换为 nxn?
- java - 我必须创建一个程序来比较两个学生的 SAT/ACT 分数。它在技术上有效,但它缺少一些东西
- c# - 不能在 Dapper 查询中使用自定义类型作为参数插入 SQLite 数据库