项目用到了 okhttp+okio,之前是 Java+Kotlin 混合开发,没有任何问题。
后来重构的时候,考虑到Kotlin部分同事还不会,就去掉了Kotlin代码和环境。
一开始 Debug 也没有啥问题,直到 release 时出问题了,一直报如下问题:
java.lang.NoClassDefFoundError: didn't find class kotlin.text.charsets
WTF !!! 我都没用 Kotlin,咋会有 kotlin.text.charsets 问题???
嗯,一定是第三方 jar 用到了,排查吧……
一个个 jar 打开看,最后在 okio 下发现了大量的 kotlin 代码:
PS: 不用一个个 jar 解压出来看,jar 包引入之后,到 lib 里就能把它展开了。
okio 为啥会是 kotlin 实现的?
一通百度之后,知道了,原来 1.16 之后的版本,okio就已经切换成 kotlin 了。
解决办法
换个1.16的版本,再试 OK。