You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

应用中能否同时引入两个不同版本的OkHttp库?附依赖崩溃问题

OkHttp3与OkHttp2共存问题解决方案

其实你完全可以在app的build.gradle中同时保留这两个OkHttp版本的依赖,核心原因在于OkHttp2和OkHttp3的包名完全不同:

  • OkHttp2的类都在com.squareup.okhttp包下
  • OkHttp3的类则在com.squareup.okhttp3包下

不同的包名意味着它们属于完全独立的命名空间,类不会互相冲突或覆盖。你的应用代码可以正常使用OkHttp3的com.squareup.okhttp3.OkHttpClient,而Mintegrate库会自动调用它依赖的OkHttp2版本的com.squareup.okhttp.OkHttpClient,两者互不干扰。

至于你移除OkHttp2.7.5后出现的ClassNotFoundException: Didn't find class com.squareup.okhttp.OkHttpClient错误,原因很直接:Mintegrate库的代码是基于OkHttp2的API编写的,它明确引用了com.squareup.okhttp包下的类,而OkHttp3并没有提供这个包的类,所以当你移除OkHttp2的依赖后,运行时找不到对应的类就会崩溃。

所以正确的依赖配置应该是同时保留两者:

compile 'com.squareup.okhttp3:okhttp:3.9.1'
compile 'com.squareup.okhttp:okhttp:2.7.5'

另外补充一点:如果后续Mintegrate官方推出了兼容OkHttp3的版本,你可以考虑替换成那个版本来减少依赖数量,但在那之前,同时保留两个版本是最稳妥的解决方式。

内容的提问来源于stack exchange,提问作者Boycott A.I.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:20:33