首页 > 解决方案 > 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;

我不知道有什么问题。

标签: androidkotlinkoin

解决方案


经过一番研究,我想通了。看来问题是视图模型的导入。我正在使用:

import org.koin.android.architecture.ext.viewModel

它应该是:

import org.koin.androidx.viewmodel.ext.android.viewModel

现在项目正在运行:)


推荐阅读