首页 > 解决方案 > 无论依赖版本如何,OkHttp 都会导致 NoClassDefFoundError

问题描述

我正在尝试通过 RapidAPI 使用 API 来获取各种篮球统计数据。以下错误指向下面的 OkHttpClient 声明行。我尝试将 Kotlin-stdlib JAR 文件的多个版本添加到项目的构建路径(我正在使用 Eclipse)并在运行此测试请求时遇到相同的错误。我目前已将 Kotlin v1.4.10 添加到构建路径中,并在引用的库列表中查看错误消息中命名的类。我也在使用 OkHttp v4.91 和 Okio v2.7.0 库,如 OkHttp 更改日志中所述。另外,我没有使用 Maven 或 Gradle 构建。

    OkHttpClient client = new OkHttpClient();
    Request request = new Request.Builder()
        .url("https://api-nba-v1.p.rapidapi.com/players/firstName/lebron")
        .get()
        .addHeader("x-rapidapi-key", rAPIKey)
        .addHeader("x-rapidapi-host", host)
        .build();

    Response response = client.newCall(request).execute();

   System.out.println(response.body().string());

产生此错误代码:

Exception in thread "main" java.lang.NoClassDefFoundError: kotlin/jvm/internal/markers/KMappedMarker
at okhttp3.internal.Util.<clinit>(Util.kt:63)
at okhttp3.OkHttpClient.<clinit>(OkHttpClient.kt:1073)
at CourtVisionary.main(CourtVisionary.java:39)

什么可能导致此问题?提前致谢。

编辑:修复了我自己的问题。我创建了一个新项目,复制并粘贴了我的 java 文件。添加了 JAR 文件,运行时没有出错。

标签: javaokhttpnoclassdeffounderror

解决方案


推荐阅读