今天有人反馈在代码运行时,突然就报出了java.lang.NoSuchMethodError: kotlin.collections.ArraysKt.copyInto([B[BIII)[B 异常,经过一番仔细查看,从异常明面上看,是缺少kotlin的包。
1.此时查看下自己工程,如果没有kotlin包的,直接引入即可,
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib</artifactId>
<version>1.3.70</version>
</dependency>
2.看下自己okhttp包版本,有可能是引入了openfeign,openfeign中自带okhttp3的包,和之前的okhttp包产生了冲突,此时,可以尝试排除
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
<exclusions>
<exclusion>
<groupId>okhttp</groupId>
<artifactId>com.squareup.okhttp3</artifactId>
</exclusion>
</exclusions>
</dependency>
或者调整okhttp版本至okhttp3版本,避免出现版本冲突问题;
3.当以上两者排查后,还无法解决该问题,这个时候,可以去看看项目中kotlin引入的版本,一定要保证其包版本一致,如下图所示:
如果出现不一致的情况,可以在顶层pom文件中dependencyManagement内指定每个包版本,强制保证使用版本一致。
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib</artifactId>
<version>1.3.70</version>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib-jdk8</artifactId>
<version>1.3.70</version>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib-jdk7</artifactId>
<version>1.3.70</version>
</dependency>
</dependencies>
</dependencyManagement>
至此,问题解决,一切恢复正常!