使用OkHttp运行代码时java.lang.NoClassDefFoundError:kotlin / TypeCastException

时间:2018-10-11 05:02:50

标签: java eclipse okhttp

这是我第一次使用OkHttp,我想首先学习一些基本代码。

这是从here提取的代码:

package com.anta40.app.okconnectiontest;

import java.io.IOException;

import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;

public class MainClass {

    public static void main(String args[]) {
        OkHttpClient okcl = new OkHttpClient();
        Request request = new Request.Builder()
                .url("http://www.vogella.com/index.html")
                .build();

        okcl.newCall(request).enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                e.printStackTrace();
            }

            @Override
            public void onResponse(Call call, final Response response) throws IOException {
                if (!response.isSuccessful()) {
                    throw new IOException("Unexpected code " + response);
                } 
                else {
                    System.out.println("okay.....");
                }
            }
        });
    }

}

在Eclipse上运行代码会产生以下输出:

  

线程“主”中的异常java.lang.NoClassDefFoundError:   kotlin / TypeCastException在   okhttp3.ResponseBody.create(ResponseBody.java:210)位于   okhttp3.internal.Util。(Util.java:60)在   okhttp3.OkHttpClient。(OkHttpClient.java:123)在   com.anta40.app.okconnectiontest.MainClass.main(MainClass.java:14)   引起原因: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个

我的构建路径中有OkHttp和kotlin jar: enter image description here enter image description here enter image description here

我在Windows 10 64上,使用JDK 1.8.0_181,OkHttp 3.11,OkIo 2.1.0,kotlib-stdlib -0.6.179,kotlin-stdlib-common 1.2.71 怎么了?

1 个答案:

答案 0 :(得分:2)

该代码适用于okhttp-3.9.0.jar和okio-1.13.0.jar。