美文网首页
Okhttp3相关的异常

Okhttp3相关的异常

作者: 王魔王 | 来源:发表于2019-04-18 09:19 被阅读0次

    Okhttp3是非常火爆的一个网络请求框架,虽然你90%配合了Retrofit,但大概率你在指定Retrofit的网络请求客户端的时候,也会使用Okhttp3

    此篇用于记录在使用Okhttp3中遇到的异常,会不断更新...

     java.lang.NoClassDefFoundError: Failed resolution of: Lokhttp3/internal/http/HttpEngine;
                                                                       at okhttp3.logging.HttpLoggingInterceptor.intercept(HttpLoggingInterceptor.java:219)
                                                                       at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
                                                                       at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
    
       Caused by: java.lang.ClassNotFoundException: Didn't find class "okhttp3.internal.http.HttpEngine" on path: DexPathList[[zip file "/data/app/com.bawie.weidu-2/base.apk", zip file "/data/app/com.bawie.weidu-2/split_lib_dependencies_apk.apk", zip file "/data/app/com.bawie.weidu-2/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
                                                                       at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
                                                                       at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
                                                                       at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
                                                                      at retrofit2.adapter.rxjava2.CallExecuteObservable.subscribeActual(CallExecuteObservable.java:42)
                                                                    Suppressed: java.lang.ClassNotFoundException: okhttp3.internal.http.HttpEngine
                                                                       at java.lang.Class.classForName(Native Method)
                                                                       java.lang.BootClassLoader.findClass(ClassLoader.java:781)
                                                                       at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
                                                                       at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
                                                                            ... 23 more
                                                                    Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available
    

    为了大家阅读方便,我删除了中间很多无用的日志,只留下了这么几行日志
    刚看到这个异常的时候我以为是分包造成的异常,一水儿的NoClassDefFoundError,但其实我心里是有疑惑的。果不其然,如果我按照分包异常的思路去解决,无法解决问题。
    上网搜索了一下,很多人都说是因为logging-interceptorOkHttp3的版本不一致造成的,但是我仔细查看自己的依赖之后发现我的依赖是这样写的:

    implementation 'com.squareup.okhttp3:okhttp:3.1.2'
    implementation 'com.squareup.okhttp3:logging-interceptor:3.1.2'
    

    也就是说我们的依赖版本是一致的,但为什么还报错呢?
    不过网上的帖子却给了我灵感,很有可能是我依赖的版本有问题,不如改个版本号试一下

    implementation 'com.squareup.okhttp3:okhttp:3.4.1'
     implementation 'com.squareup.okhttp3:logging-interceptor:3.4.1'
    

    完美解决了我的问题

    相关文章

      网友评论

          本文标题:Okhttp3相关的异常

          本文链接:https://www.haomeiwen.com/subject/vkaawqtx.html