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

最近在开发一个新项目,可能是自己经验不足的问题,总是遇到各种各样的坑,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!!!!

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



猜你喜欢

转载自blog.csdn.net/tdltdltdl886/article/details/80621142