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

Firestore集成异常:依赖更新后出现Java.lang.VerifyError(WriteResponse)

解决Firestore与Google PALM集成时的Protobuf版本冲突导致的VerifyError

问题根源

这个VerifyError的核心原因是Protobuf依赖版本不兼容:Firestore依赖的Protobuf内部类型(如GeneratedMessageLite)与你手动引入的protobuf-javalite、PALM依赖带来的Protobuf版本不一致,导致Dalvik虚拟机类加载时验证失败。

具体解决方案

1. 移除冲突的手动Protobuf/GRPC依赖

Firebase BOM已经为Firestore管理了兼容的Protobuf版本,不需要手动引入相关依赖。删除dependencies块中以下内容:

implementation("ch.qos.logback:logback-classic:1.2.11")
implementation("io.grpc:grpc-protobuf:1.46.0")
implementation("io.grpc:grpc-stub:1.46.0")
implementation("com.google.protobuf:protobuf-javalite:3.22.3")

2. 调整依赖版本策略,强制统一Protobuf版本

替换原configurations.all块的内容,强制所有依赖使用与Firebase BOM兼容的Protobuf版本:

configurations.all {
    resolutionStrategy {
        // 强制统一Protobuf相关版本,匹配Firebase BOM 32.5.0的兼容版本
        force "com.google.protobuf:protobuf-javalite:3.21.12"
        force "com.google.firebase:protolite-well-known-types:18.0.0"
    }
}

注:可以通过执行./gradlew dependencies命令,确认Firebase BOM实际引入的Protobuf版本,确保上述版本号匹配。

3. 替换PALM依赖为Android兼容的正式版SDK

你当前使用的PALM SNAPSHOT版本是针对JVM的,容易引发Android平台依赖冲突。换成官方提供的Android专用Generative AI SDK:

// Google Generative AI 官方Android SDK
implementation("com.google.ai.client.generativeai:generativeai:0.1.2")
implementation("com.google.ai.client.generativeai:generativeai-android:0.1.2")

该SDK已针对Android平台做了依赖兼容处理,不会与Firebase组件冲突。

4. 清理并重建项目

执行以下命令清理缓存并重新构建:

./gradlew clean
./gradlew assembleDebug

原理说明

Firebase BOM的核心作用是统一所有Firebase组件的依赖版本,避免版本冲突。手动引入第三方Protobuf/GRPC依赖会打破这种版本一致性,导致类结构不匹配,触发Dalvik的类验证错误。通过强制统一版本、使用Android兼容的PALM SDK,可以彻底解决该问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 08:44:56