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

OOD水球

我不是在开发Android应用程序,
而是在编写一些JAVA代码来支持Imgur API服务。

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中可用
谢谢 。

OOD水球

我解决了这个问题,如果您正在编写Java(仅Java),并且下载了Retrofit2的Jar,它可能不包含Android Studio中内置的某些库,因此您必须手动下载它们。

  1. OkHttp3 OkHttp3 3.0.0 Jar下载
  2. Okio Okio 1.6.0 Jar下载
  3. Retrofit-converter gson Retrofit-converter gson-2 beta3 Jar下载(如果要转换其他类型的数据,只需在Retrofit中下载其他Jars
  4. Gson Gson 2.2.3 Jar下载

导入jar文件,然后它可以工作

确保您拥有所有在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Retrofit2中的登录错误,由以下原因引起:java.lang.NoSuchMethodError:okhttp3.internal.Platform.log

Retrofit2,java.lang.StackOverflowError 不能转换为 java.lang.RuntimeException

java.lang.IllegalStateException:应为 BEGIN_ARRAY,但为 BEGIN_OBJECT -ANDROID RETROFIT2

okhhtp3模拟服务器java.lang.NoClassDefFoundError:okhttp3 / internal / concurrent / TaskRunner $ RealBackend

java.lang.NoClassDefFoundError:org / springframework / beans / factory / config / EmbeddedValueResolver

ApacheHttpClient $ Factory引发java.lang.NoClassDefFoundError异常

java.lang.NoClassDefFoundError:org / springframework / beans / factory / Aware

Java的Retrofit2 POST JSONObject的好的做法呢?

使用RetroFit2和Android / Java的首次API调用

如何从Retrofit2调用OnResponse返回Java对象

Kotlin 的 android Rx-java + Retrofit2 错误

在Retrofit2的单个请求中使用@FieldMap和@Part会得到java.lang.IllegalArgumentException:仅允许使用一种编码注释。

Retrofit2错误:java.lang.IllegalStateException:应为BEGIN_OBJECT,但在第1行第1列路径$ STRING

使用Retrofit2和okhttp3缓存请求

java.lang.NoClassDefFoundError:okhttp3.OkHttpClient $ Builder

Java OkHttp3仅使用Http / 1.1或Http / 2

为什么在使用Retrofit2时出现“ Type okhttp3.Call没有类型参数”的信息?

okHttp3 java.lang.NoSuchMethodError:没有虚拟方法setCallWebSocket

java.lang.NoClassDefFoundError:org / openxmlformats / schemas / spreadsheetml / x2006 / main / CTWorkbook $ Factory

java.lang.NoClassDefFoundError:io / restassured / path / json / mapper / factory / JsonbObjectMapperFactory

RxJava / Retrofit2 / Java-NetworkBoundResource无法按预期工作

Retrofit2错误java.io.EOFException:第1行第1列的输入结束

Java Android Studio中使用列表以及Retrofit2和Gson转换器的问题

带有OkHttp3和Retrofit2的HTTP / 2

Retrofit2 / OKHttp3:以编程方式设置自定义的每个请求标头

带有Retrofit2 OkHttp3的Android-多部分POST错误

如何使用带有Okhttp3的Retrofit2禁用URL编码

java.lang.NoClassDefFoundError

“ java.lang.NoClassDefFoundError”