Koin java.lang.NoClassDefFoundError:解析失败:Lorg/koin/dsl/context/ParameterHolderKt

Lau*_*ura 3 android kotlin koin

我有一个带有 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"
Run Code Online (Sandbox Code Playgroud)

我的模块是这样的:

电影模块

val moviesModule = module {
   viewModel { MoviesListViewModel(get()) }

   single { createMoviesRepository(get()) }

   single { createMoviesInteractor(get(), get()) }
}
Run Code Online (Sandbox Code Playgroud)

在片段中,我像这样实例化我的 viewModel:

 private val viewModel by viewModel<MoviesListViewModel>()
Run Code Online (Sandbox Code Playgroud)

但是由于某种原因,当我运行该应用程序时,该应用程序崩溃并显示以下内容

java.lang.NoClassDefFoundError:解析失败:Lorg/koin/dsl/context/ParameterHolderKt;

我不知道会出什么问题。

Lau*_*ura 9

经过一番研究,我想通了。似乎问题在于 viewModel 的导入。我正在使用:

import org.koin.android.architecture.ext.viewModel
Run Code Online (Sandbox Code Playgroud)

它应该是:

import org.koin.androidx.viewmodel.ext.android.viewModel
Run Code Online (Sandbox Code Playgroud)

现在该项目正在运行:)