java.lang.ClassNotFoundException:找不到类“ kotlinx.coroutines.experimental.Deferred”

时间:2018-12-10 06:19:02

标签: android kotlin retrofit coroutine

在协同使用协程时遇到了这个问题,请让我知道为什么我会收到此错误

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'

2 个答案:

答案 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或更高版本及其内置的暂停支持