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;
我不知道会出什么问题。
经过一番研究,我想通了。似乎问题在于 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)
现在该项目正在运行:)