当前位置: 首页 > 知识库问答 >
问题:

为了避免这个错误,我应该在改版2.1.0中使用okhttp和okhttp日志拦截器的哪个版本?

庞瀚
2023-03-14

当运行一个改型应用程序时,我得到以下错误:

E/AndroidRuntime:致命异常:OkHttp Dispatcher进程:fr.univ_lehavre.greah.naoderapp,PID:20894java.lang.NosuchMethoderror:lokhttp3/internal/platform类中没有虚方法日志(ljava/lang/string;)V;或其超级类('OKHTTP3.Internal.Platform'的声明出现在/data/app/fr.univ_lehavre.greah.naoderapp-2/split_lib_dependencies_apk.apk)处,位于OKHTTP3.logging.HttpLogGingInterceptor$logger$1.log(httpLogGingInterceptor.java:108)处,位于OKHTTP3.logging.HttpLogGingInterceptor.java:157)处,位于OKHTTP3.realCall$ApplicationInterceptor.java:157),位于.access$100(realcall.java:30)在OKHTTP3.realcall$asynccall.execute(realcall.java:127)在OKHTTP3.internal.namedrunnable.run(namedrunnable.java:32)在java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1133)在java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:607)在

这是我在其中创建referfit对象的类:

public class RetrofitImpl {

private static Retrofit retrofit = null;
public static final String BASE_URL = "http://192.168.43.144:8080/";
//    public static final String BASE_URL = "http://10.0.2.2:8080/";

public static Retrofit getClient() {

    HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
    interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
    OkHttpClient client = new OkHttpClient.Builder().addInterceptor(interceptor).build();

    retrofit = new Retrofit.Builder()
            .baseUrl(BASE_URL)
            .addConverterFactory(GsonConverterFactory.create())
            .client(client)
            .build();
    return retrofit;
}

}

我不确定应该使用哪个版本。

implementation 'com.squareup.retrofit2:retrofit:2.1.0'
implementation 'com.squareup.retrofit2:converter-gson:2.1.0'
implementation 'com.squareup.okhttp3:okhttp:3.0.0-RC1'
implementation 'com.squareup.okhttp3:logging-interceptor:3.0.0-RC1'

谢谢你。

共有1个答案

国跃
2023-03-14

尝试添加这些版本。

 compile 'com.squareup.okhttp3:logging-interceptor:3.9.1'
 compile 'com.squareup.retrofit2:retrofit:2.3.0'
 类似资料:
  • 我以为这些最新版本应该是兼容的。有一条推文;https://twitter.com/JakeWharton/status/553066921675857922和Retrofit 1.9的更新日志也提到了它。 然而,当我尝试这个: 还是不行。setClient方法抱怨不兼容的客户端对象; 我错过了什么?我还看到OkHttpClient没有实现客户端接口。 我现在使用这种方法;https://medi

  • 我是不是错过了一些图书馆?

  • SOFATracer 集成 OkHttp 后输出请求的链路数据格式,默认为 JSON 数据格式。 OkHttp 摘要日志(okhttp-digest.log) 以 JSON 格式输出的数据,相应 key 的含义解释如下: key 表达含义 time 日志打印时间 local.app 当前应用名 traceId TraceId spanId SpanId request.url 请求 URL met

  • D/OKHTTP:主机:www.appido.ir D/OKHTTP:Connection:Keep-Alive d/okhttp:accept-encoding:gzip 1048576------WebKitFormBoundaryJDHM3Si8Enjzaba内容-配置:表单-数据;name=“FlowCurrentChunkSize” 23016-----WebKitFormBoundar

  • 我尝试使用OkHttp 3.12.0中最近添加的一个特性:全操作超时。为此,我还依赖retrofit 2.5.0中新的类,它允许我检索方法注释。 尽管它在使用拦截器中的链方法时工作得很好: 这是因为在呼叫排队之前必须设置呼叫超时吗?(而拦截器在过程中触发得太晚了?),或者这是其他原因?