Retrofit2 java.lang.NoClassDefFoundError: okhttp3/Call$Factory in JAVA

Retrofit2 java.lang.NoClassDefFoundError: okhttp3/Call$Factory in JAVA

I am not developing a Android Application ,
I'm just writing some JAVA codes to support Imgur API services.

public interface ImgurAPI {
    String server = "https://api.imgur.com";
    String BASE64 = "base64";

    @POST("/3/upload")
    void postImage(
            @Header("Authorization") String auth,
            @Query("title") String title,
            @Query("description") String description,
            @Query("type") String type,
            @Body String base64Image,
            Callback<ImageResponse> cb
    );

}

主要内容:

public static void main(String[] args) {

    try{
        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl(ImgurAPI.server)
                .build();
        ImgurAPI myAPI = retrofit.create(ImgurAPI.class);
        String base64Image = new ImageReader(PATH).getBase64String();
        myAPI.postImage(AUTH, "Hi", "Test", ImgurAPI.BASE64, base64Image, new MyCallBack());

    }catch(Exception err){
        err.printStackTrace();
    }
}

并抛出异常:

    Exception in thread "main" java.lang.NoClassDefFoundError: okhttp3/Call$Factory
    at Main.main(Main.java:14)

Caused by: java.lang.ClassNotFoundException: okhttp3.Call$Factory

我找到了很多 Android 的解决方案。 所以我想知道 Retrofit 是否仅在 JAVA 中可用。
谢谢 。

我解决了, 如果您正在写 Java(仅 Java), 你下载了 Retrofit2 的 Jar, 它可能不包含 Android Studio 中内置的某些库, 所以你必须手动下载它们。

  1. OkHttp3 OkHttp3 3.0.0 Jar download
  2. Okio Okio 1.6.0 Jar download
  3. 改装转换器 gson Retrofit converter gson-2 beta3 Jar download (如果你想转换其他类型的数据,只需在Retrofit下载其他Jar)
  4. Gson Gson 2.2.3 Jar download

导入jar文件,就可以了

确保你得到了所有的

如果在 Java EE 项目中使用 Influxdb-java.jar 时出现此错误后寻找解决方案时发现此 post,则需要以下依赖项:

解决这个问题很烦人,所以希望它对某人有所帮助。