首页 > 解决方案 > java.lang.ClassNotFoundException:找不到类“kotlinx.coroutines.experimental.Deferred”

问题描述

我在使用带有改造的协程时遇到了这个问题,你能告诉我为什么我会收到这个错误吗

java.lang.ClassNotFoundException:在路径上找不到类“kotlinx.coroutines.experimental.Deferred”:DexPathList [[zip file“/data/app/com.coroutines.retrofit.kotlin-1/base.apk”], nativeLibraryDirectories=[/vendor/lib64, /system/lib64]]

当我使用以下依赖项时,

实施 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-experimental-adapter:1.0.0'

实施 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.0.1' 实施 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.0.1'

并且 kotlin 版本是:ext.kotlin_version = '1.3.10'

标签: androidkotlinretrofitcoroutine

解决方案


在您的 build.gradle 中添加此依赖项:(删除协程的实验依赖项)

dependencies {
    implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.0.0'
    implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2'
}

并添加 CoroutineCallAdapterFactory() 进行改造

addCallAdapterFactory(CoroutineCallAdapterFactory())

推荐阅读