微信支付接入异常java.lang.NoSuchMethodError: kotlin.collections.ArraysKt.copyInto([B[BIII)[B] with root caus

在使用Java和JDK1.8进行微信支付jsapi支付集成时,遇到官方包0.2.6的BUG,由于内部Okhttp版本冲突引发`NoSuchMethodError`。通过分析Maven依赖图,发现微信支付库与kotlin-stdlib-common版本冲突。解决方案是排除微信支付库中的Okhttp依赖,并手动引入指定版本的Okhttp3包。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述

最近在接入微信支付的jsapi支付,遇到一个微信支付官方包的BUG,我使用java开发jdk是1.8的,开发工具:idea
在引入微信支付官方0.2.6包后,如下图:
在这里插入图片描述
在创建JsapiService对象时出现以下错误,如图1:
java.lang.NoSuchMethodError: kotlin.collections.ArraysKt.copyInto([B[BIII)[B] with root caus
图1
大概的意思就是引用了okhttp的jar包,接口报异常。通常是因为引用了okhttp多个版本的包导致的,但是我是没有引用okhttp相关的包。

然后我查看maven包的依赖的关系和版本
在pom.xml文件里面右键Maven→Show Dependencies… 或者使用快捷键Ctrl+Alt+Shift+U,如图1,会生成maven依赖关系图,右键Show Categories→Show Conflicts/Duplicates,图2
图1
图2
最后发现微信支付引入的okhttp的4.10.0版本包里的kotlin-stdlib-common存在1.2.71和1.5.31两个版本,okhttp的4.10.0的版本自身就会存在冲突。在这里插入图片描述

解决方案

知道原因后就好办了,首先把微信支付com.github.wechatpay-apiv3里的com.squareup.okhttp3包给过滤,再重新引入其它版本的okhttp3包,就可以正常使用了,具体如下图:
在这里插入图片描述


```xml
        <!--微信支付相关 -->
        <dependency>
            <groupId>com.squareup.okhttp3</groupId>
            <artifactId>okhttp</artifactId>
            <version>3.4.2</version>
        </dependency>
        <dependency>
            <groupId>com.github.wechatpay-apiv3</groupId>
            <artifactId>wechatpay-java</artifactId>
            <version>0.2.6</version>
            <exclusions>
                <exclusion>
                    <!-- 过滤okhttp包-->
                    <groupId>com.squareup.okhttp3</groupId>
                    <artifactId>okhttp</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

未来星辰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值