最近在使用OkHttp3的时候碰到了下面这个报错:
java.lang.NoClassDefFoundError: Failed resolution of: Lokio/Buffer
我本来是这样导入的:
implementation 'com.squareup.okhttp3:okhttp:3.11.0'
一点毛病都没有。可是不方便同事集成我的aar,所以我得换成jar包来集成okhttp.
那我就从网上下载了对应的okhttp-3.11.0.jar包,然后:
implementation files('libs/okhttp-3.11.0.jar')
make一下module,很好没报错,运行一下,完了,就出现这个错误了:
java.lang.NoClassDefFoundError: Failed resolution of: Lokio/Buffer
看起来是找不到这个类,而且是kio类,好像okhttp确实是依赖了这个一个jar包。
百度一看,还真是要导入这个一个包,结果下载了最新的okio-2.2.2.jar和okio-2.2.0.jar,都试了一下,发现还是报错,见鬼了。
继续降低okio版本,终于使用okio-1.16.0.jar包就没有报错了。
总结,要解决这个问题,一是要导入okio的jar包,二是要匹配相对应的版本。