本篇文章主要讲解,java使用阿里云依赖进行提交短信时,报错:handler dispatch failed; nested exception is java.lang.noclassdeffounderror: okio/options 的主要原因及解决办法。
日期:2024年10月4日
作者:任聪聪
报文信息:
handler dispatch failed; nested exception is java.lang.noclassdeffounderror: okio/options
主要原因:
这是由于缺少okio依赖 或 其他引入依赖中存在低版本okio冲突导致的报错。
解决办法:
方式一、排除存在引入旧版本的依赖
<dependencies>
<dependency>
<groupId>com.xxx.xxxx</groupId>
<artifactId>xxxxxxx</artifactId>
<version>1.0.0</version>
<exclusions>
<exclusion>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
方式二、引入最新的okhttp3及okio
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>4.10.0</version>
</dependency>
<dependency>
<groupId>com.squareup.okio</groupId>
<artifactId>okio</artifactId>
<version>3.0.0</version>
</dependency>
常见问题:
1、安装完毕后依旧报错
这是由于idea没有更新索引导致的,可以直接点击左上角菜单,file,点击清理并重载即可,如下图:
2、安装后并重构,且通过idea清理重载后依旧报错
这种情况建议检查依赖版本冲突情况,将okio的版本改为适合okhttp3的依赖对应版本即可解决问题。
3、无论怎么样都无法解决这个问题
那么可以直接使用api的形式远程请求,进行发送,摒弃掉依赖发送的形式。