【问题标题】:kotlin/TypeCastException when trying to create OkHttpClient object尝试创建 OkHttpClient 对象时出现 kotlin/TypeCastException
【发布时间】:2019-01-04 21:25:00
【问题描述】:

当我尝试创建一个新的 OkHttpClient 对象时,抛出一个异常

我正在使用 OkHttp 3.11.0 和 OkIO 2.0.0-RC1。

线程“main”中的异常 java.lang.NoClassDefFoundError: kotlin/TypeCastException 在 okhttp3.ResponseBody.create(ResponseBody.java:210) 在 okhttp3.internal.Util.(Util.java:60) 在 okhttp3.OkHttpClient.(OkHttpClient.java:123) 在 p12.Main.main(Main.java:8) 引起:java.lang.ClassNotFoundException: kotlin.TypeCastException 在 java.net.URLClassLoader.findClass(URLClassLoader.java:381) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:424) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 4 更多

【问题讨论】:

  • 你能提供出错的代码吗?

标签: java okhttp okio


【解决方案1】:

您是否将 kotlin stdlib 和 stdlib-common 依赖项添加到您的构建中?看起来他们不见了。

【讨论】:

    【解决方案2】:

    对我有用的解决方案(在这个github comment 中提到)是添加okhttp 库本身:

    Gradle kotlin DSL:

    testImplementation("com.squareup.okhttp3:okhttp:4.2.2")
    testImplementation("com.squareup.okhttp3:mockwebserver:4.2.2")
    

    Gradle Groovy DSL:

    testImplementation 'com.squareup.okhttp3:okhttp:4.2.2'
    testImplementation 'com.squareup.okhttp3:mockwebserver:4.2.2'
    

    【讨论】:

      【解决方案3】:

      我遇到了同样的问题。 在构建路径中添加kotlin-stdlib JAR

      【讨论】:

        【解决方案4】:

        很可能你的项目包含okhttp的版本为3.x.x, 导致mockwebserver 依赖于错误版本的okhttp,它还不包含对kotlin-stdlib-common 的传递依赖。

        如果您使用 Spring Bootmockwebserver,只需将以下属性添加到您的 pom 中

        <okhttp3.version>4.x.x</okhttp3.version>

        【讨论】:

          【解决方案5】:

          好吧,我遇到了同样的问题,我像这样添加了 Kotlin 依赖项:

          <dependency>
             <groupId>org.jetbrains.kotlin</groupId>
             <artifactId>kotlin-stdlib</artifactId>
             <version>1.4.32</version>
          </dependency>
          

          【讨论】:

            【解决方案6】:

            在 OSGi 中不要使用 kotlin 库,而是使用 kotlin 包: https://kotlinlang.org/docs/reference/kotlin-osgi.html

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2022-11-22
              • 1970-01-01
              • 2019-12-05
              • 2018-10-20
              • 2014-08-09
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多