AWS SDK 2.0调用Step Functions出现NoClassDefFoundError异常如何解决
问题根因
类找不到错误是AWS SDK v2版本不兼容导致的:你引入的software.amazon.awssdk:stepfunctions:2.0.0-preview-11是极早期的预览版本,它依赖的核心SDK类结构和你全局指定的2.17.29正式版SDK完全不匹配,旧预览版用到的software.amazon.awssdk.core.runtime.transform.Unmarshaller在正式版SDK里已经调整了包路径,所以会触发NoClassDefFoundError。
修复步骤
- 移除stepfunctions依赖后的版本号,你已经引入了
software.amazon.awssdk:bom全局管理版本,直接声明无版本号的依赖即可,BOM会自动匹配和其他SDK组件兼容的正式版本:
// 修改前 // implementation 'software.amazon.awssdk:stepfunctions:2.0.0-preview-11' // 修改后 implementation 'software.amazon.awssdk:stepfunctions'
- 删除手动添加的多余核心包依赖:
implementation 'software.amazon.awssdk:core:2.17.29',AWS SDK的服务组件(s3、stepfunctions等)会自动传递依赖所需的核心包,手动指定反而容易引发版本冲突 - 刷新Gradle依赖,重新构建项目即可
修改完成后stepfunctions的版本会自动同步为2.17.29,和其他AWS SDK组件版本一致,类找不到的问题会直接解决。
内容的提问来源于stack exchange,提问作者Jay
相关产品推荐
相关产品推荐

