android中java.lang.NoClassDefFoundError: okhttp3.OkHttpClient异常

  • Post author:
  • Post category:java


最近在开发一个新项目,可能是自己经验不足的问题,总是遇到各种各样的坑,emmm…….让我的头搞得是摸不着头脑,难受,香菇。。。。

在我的项目中我使用了一个大佬封装的okhttpUtils(吴大佬),然后就是前任(可别想多啊,是前任安卓)留下的okhttp中的拦截器了,,,,当我使用ok请求网络数据时就报了下面的错误,


java.lang.NoClassDefFoundError: okhttp3.internal.tls.OkHostnameVerifier



百度了一波,然而并没有什么卵用,说是什么jar冲突啊之类的办法都没偶用,可是一点是有用的,让我知道了

OkHostnameVerifier


存在于拦截器下,然而可怕的是必须要okhttp3版本的号为3.3.1才会存在,不然就会报错,我也很无奈啊!!!,解决了差不多半天最后也灭解决,什么改版本号啊,强制使用某个版本号阿,我也都试了没有作用,哎,无奈,,,第二天开早会时,项目经理问道错误解决没?我也只能无奈说,没有啦!!!


在此期间我也请教了许多大佬,他们都说jar冲突了,都让我删除jar包,最后我也很无奈,摸不着头脑,早会结束后我还是决定找度娘,最后没想到真的找到了解决办法,我抱着试一试的态度行动起来了



首先第一步:



在build.gradle文件中添加








第二步:








添加mutiDexEnabled true



第三步:



建一个MyApplication继承Application



然后在

MyApplication中初始化mutiDexEnabled







MultiDex.install(this);





这段代码在API_21及以上加不加手机都不会报错, 在API_21以下就会爆出java.lang.NoClassDefFoundError: okhttp3.OkHttpClient错误。(我用的4.4版本手机)




到此解决问题







第四步:





就是运行代码了,哈哈哈,,,run,,,,





又到了工作的时间了,我天天忙得都没时间写博客,更没时间睡觉,午休结束了,开始工作,,,flightting!!!!





有时间继续总结项目中遇到的问题










版权声明:本文为tdltdltdl886原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。