解决java.lang.NoSuchMethodError: kotlin.collections.ArraysKt.copyInto([B[BIII)[B

发布于:2024-10-15 ⋅ 阅读:(112) ⋅ 点赞:(0)

今天有人反馈在代码运行时,突然就报出了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>

至此,问题解决,一切恢复正常!


网站公告

今日签到

点亮在社区的每一天
去签到