编译JMeter 5.6出现NoSuchMethodError错误,求助原因及解决办法
JMeter 5.6编译报错解决建议
报错信息
java.util.concurrent.CompletionException: java.lang.NoSuchMethodError: org.bouncycastle.asn1.ASN1ObjectIdentifier.equals(Lorg/bouncycastle/asn1/ASN1Primitive;)Z
java.lang.NoSuchMethodError: org.bouncycastle.asn1.ASN1ObjectIdentifier.equals(Lorg/bouncycastle/asn1/ASN1Primitive;)Z
Unable to find method 'org.bouncycastle.asn1.ASN1ObjectIdentifier.equals(Lorg/bouncycastle/asn1/ASN1Primitive;)Z'.
已尝试操作
- 重启IntelliJ IDEA
- 清理IDE缓存
额外排查及解决步骤
针对BouncyCastle依赖冲突或缓存问题,可尝试以下操作:
清理Gradle本地缓存并强制刷新依赖
- 执行构建命令:
./gradlew clean build --refresh-dependencies(Linux/macOS)或gradlew clean build --refresh-dependencies(Windows),强制重新下载所有依赖并构建 - 手动删除Gradle缓存目录:路径通常为
~/.gradle/caches(Linux/macOS)或C:\Users\<你的用户名>\.gradle\caches(Windows)
- 执行构建命令:
统一BouncyCastle依赖版本
- JMeter 5.6对BouncyCastle版本要求与5.3存在差异,确保项目所有模块依赖的BouncyCastle版本一致
- 在
build.gradle中显式指定对应版本,示例:dependencies { implementation 'org.bouncycastle:bcprov-jdk15on:1.70' implementation 'org.bouncycastle:bcpkix-jdk15on:1.70' }
(版本号以JMeter 5.6官方依赖为准)
重启Gradle守护进程
- 执行命令:
./gradlew --stop(Linux/macOS)或gradlew --stop(Windows),彻底终止所有Gradle守护进程后重新执行构建
- 执行命令:
验证依赖完整性
- 查看Gradle构建日志,确认BouncyCastle相关依赖是否完整下载;若存在下载失败记录,可手动下载对应jar包放入本地仓库对应目录
内容的提问来源于stack exchange,提问作者牛卫星
相关产品推荐
相关产品推荐

