在协同使用协程时遇到了这个问题,请让我知道为什么我会收到此错误
java.lang.ClassNotFoundException:在路径:DexPathList [[zip文件“ /data/app/com.coroutines.retrofit.kotlin-1/”上找不到类“ kotlinx.coroutines.experimental.Deferred”。 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'
答案 0 :(得分:10)
在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())
答案 1 :(得分:0)
我正面临着同样的问题,这是杰克·沃顿(Jake Warton)的图书馆问题。它在内部使用实验参考。
使用implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-experimental-adapter:1.0.0'
java.lang.NoClassDefFoundError: Failed resolution of: Lkotlinx/coroutines/experimental/Deferred;
at com.jakewharton.retrofit2.adapter.kotlin.coroutines.experimental.CoroutineCallAdapterFactory.get
该库已已弃用。这是git库页面上的解决方案
不建议使用该库。请迁移到Retrofit 2.6.0或更高版本及其内置的暂停支持