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

Android Studio中Firebase Firestore触发java.lang.VerifyError错误求助

Android Firebase Firestore注册时触发java.lang.VerifyError错误

错误日志

FATAL EXCEPTION: main
Process: com.example.sellit, PID: 21402
java.lang.VerifyError: Verifier rejected class com.google.firestore.v1.Value: void com.google.firestore.v1.Value.mergeGeoPointValue(com.google.type.LatLng) failed to verify: void com.google.firestore.v1.Value.mergeGeoPointValue(com.google.type.LatLng): [0x19] register v4 has type Precise Reference: com.google.type.LatLng but expected Reference: com.google.protobuf.GeneratedMessageLite
 void com.google.firestore.v1.Value.mergeTimestampValue(com.google.protobuf.Timestamp) failed to verify: void com.google.firestore.v1.Value.mergeTimestampValue(com.google.protobuf.Timestamp): [0x19] register v4 has type Precise Reference: com.google.protobuf.Timestamp but expected Reference: com.google.protobuf.GeneratedMessageLite (declaration of 'com.google.firestore.v1.Value' appears in /data/app/~~f45OKSRu4zvHtUGPkqm61Q==/com.example.sellit-ypy_xq8iBTIqr4GuT8n7Ag==/base.apk!classes8.dex)
    at com.google.firestore.v1.Value.getDefaultInstance(Value.java:1862)
    at com.google.firestore.v1.MapValue$FieldsDefaultEntryHolder.<clinit>(MapValue.java:29)
    at com.google.firestore.v1.MapValue.dynamicMethod(MapValue.java:421)
    at com.google.protobuf.GeneratedMessageLite.dynamicMethod(GeneratedMessageLite.java:308)
    at com.google.protobuf.GeneratedMessageLite.buildMessageInfo(GeneratedMessageLite.java:376)
    at com.google.protobuf.GeneratedMessageInfoFactory.messageInfoFor(GeneratedMessageInfoFactory.java:60)
    at com.google.protobuf.ManifestSchemaFactory$CompositeMessageInfoFactory.messageInfoFor(ManifestSchemaFactory.java:144)
    at com.google.protobuf.ManifestSchemaFactory.createSchema(ManifestSchemaFactory.java:56)
    at com.google.protobuf.Protobuf.schemaFor(Protobuf.java:91)
    at com.google.protobuf.Protobuf.schemaFor(Protobuf.java:105)
    at com.google.protobuf.GeneratedMessageLite.makeImmutable(GeneratedMessageLite.java:226)
    at com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(GeneratedMessageLite.java:411)
    at com.google.firestore.v1.MapValue.<clinit>(MapValue.java:466)
    at com.google.firestore.v1.MapValue.newBuilder(MapValue.java:228)
    at com.google.firebase.firestore.UserDataReader.parseMap(UserDataReader.java:290)
    at com.google.firebase.firestore.UserDataReader.parseData(UserDataReader.java:251)
    at com.google.firebase.firestore.UserDataReader.convertAndParseDocumentData(UserDataReader.java:232)
    at com.google.firebase.firestore.UserDataReader.parseSetData(UserDataReader.java:75)
    at com.google.firebase.firestore.DocumentReference.set(DocumentReference.java:167)
    at com.google.firebase.firestore.DocumentReference.set(DocumentReference.java:147)
    at com.example.sellit.SignUpActivity$2.onComplete(SignUpActivity.java:79)
    at com.google.android.gms.tasks.zzi.run(com.google.android.gms:play-services-tasks@@18.0.1:1)
    at android.os.Handler.handleCallback(Handler.java:942)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loopOnce(Looper.java:201)
    at android.os.Looper.loop(Looper.java:288)
    at android.app.ActivityThread.main(ActivityThread.java:7898)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)

触发代码(SignUpActivity.java)

firebaseFirestore.collection(DATA_USERS).document(firebaseAuth.getUid()).set(user);

已尝试的无效操作

在build.gradle中排除多个protobuf相关依赖:

implementation ('com.google.firebase:firebase-firestore:24.4.0'){
    exclude module: 'protolite-well-known-types'
    exclude module: 'protobuf-javalite'
    exclude module: 'protobuf-java'
    exclude module: 'protobuf-java-util'
    //exclude module: "com.google.protobuf"
    exclude module:'protobuf-lite'
    exclude module:'proto-google-common-protos'
}

可行解决方案

  • 使用Firebase BOM统一依赖版本:通过Firebase BOM自动管理所有Firebase依赖的版本,避免版本冲突导致的protobuf类不兼容。修改项目根目录的build.gradle(或模块级build.gradle):

    dependencies {
        // 引入Firebase BOM
        implementation platform('com.google.firebase:firebase-bom:32.7.0')
        
        // 无需指定版本,由BOM自动适配
        implementation 'com.google.firebase:firebase-firestore'
        implementation 'com.google.firebase:firebase-auth'
        // 其他Firebase相关依赖...
    }
    
  • 清理构建缓存并重新编译:

    1. 在Android Studio中选择File > Invalidate Caches... > Invalidate and Restart
    2. 删除项目根目录下的.gradle、build文件夹,以及模块目录下的build文件夹
    3. 执行./gradlew clean和./gradlew build命令重新构建项目
  • 排查第三方依赖冲突:运行./gradlew app:dependencies查看完整依赖树,找出引入冲突protobuf版本的第三方库,针对性排除冲突模块。例如:

    implementation ('com.example:third-party-library:1.0.0') {
        exclude group: 'com.google.protobuf', module: 'protobuf-java'
    }
    
  • 降级Firestore版本:如果上述方法无效,尝试降级到稳定版本(如24.0.0),规避新版本的兼容性问题:

    implementation 'com.google.firebase:firebase-firestore:24.0.0'
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 03:01:09