You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

集成Firestore时抛出NoClassDefFoundError:缺失gRPC相关类

原因分析:java.lang.NoClassDefFoundError: io/grpc/internal/ManagedChannelImplBuilder$ChannelBuilderDefaultPortProvider
  • 核心原因:gRPC依赖版本冲突
    com.google.cloud:google-cloud-firestore:3.9.2依赖特定版本的gRPC核心库(grpc-core),其中包含ManagedChannelImplBuilder$ChannelBuilderDefaultPortProvider这个内部类。但你的项目中存在其他依赖(比如第三方组件或你添加的com.google.firebase:firebase-admin:9.2.0)引入了不同版本的gRPC库,Maven在依赖解析时会选择某一个版本的gRPC jar包最终打入项目,若选中的版本是不包含该类的高版本gRPC,就会抛出NoClassDefFoundError——因为高版本gRPC对该内部类做了重构、改名或移除操作。

  • 添加firebase-admin未解决问题的原因
    com.google.firebase:firebase-admin:9.2.0自身也依赖gRPC,且它依赖的gRPC版本和google-cloud-firestore:3.9.2所需的版本不兼容。添加这个依赖不仅没有补充缺失的类,反而进一步引入了冲突的gRPC版本,导致问题持续存在。

  • 验证依据
    你通过Maven依赖树发现多版本gRPC依赖,这直接印证了版本冲突的结论。可以通过执行mvn dependency:tree命令,定位所有grpc-core、grpc-netty等gRPC相关依赖的版本,查看最终被Maven解析选中的版本,确认该版本是否与google-cloud-firestore:3.9.2依赖的gRPC版本一致。

内容的提问来源于stack exchange,提问作者Qeychon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 10:09:53