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

近期Firebase、Play Services库致构建失败:protobuf文件重复冲突

彻底解决Firebase/Play Services更新后的Protobuf冲突问题

先给你理清楚问题根源:你遇到的这两个错误本质上是不同依赖库引入了重复的Protobuf定义文件和编译后的类,大概率是更新Firebase/Play Services时,不同组件版本不一致,或者第三方库与官方库的Protobuf版本冲突导致的。

临时方案(pickFirst)的运行时风险

你用的让Gradle选择首个文件的方案,隐藏着不小的隐患:

  • 如果不同依赖包里的同名proto文件版本不一致(比如字段增减、类型修改),Gradle选到的文件可能和其他库预期的结构不匹配,会导致运行时出现序列化/反序列化错误,比如数据解析失败、字段缺失,甚至直接Crash。
  • 这类问题很难排查,因为编译时不会报错,只有在特定功能触发时才会暴露,且错误日志通常不会直接指向Protobuf版本冲突。

彻底解决方案

1. 统一Firebase/Play Services的版本号

Google官方明确要求:所有Play Services和Firebase库必须使用相同的主版本号(比如全部用15.0.1,或更高的统一稳定版本),版本不一致是引发这类冲突的最常见原因。

你可以在项目根目录的build.gradle里统一管理版本:

buildscript {
    ext {
        play_services_version = '15.0.1'
        firebase_version = '15.0.1'
    }
    repositories {
        google()
        jcenter()
    }
    // ...其他buildscript配置
}

然后在app模块的build.gradle里引用这些统一版本:

implementation "com.google.android.gms:play-services-identity:$play_services_version"
implementation "com.google.firebase:firebase-core:$firebase_version"
// 所有其他Firebase/Play Services相关依赖都用这个版本

2. 排查并排除重复的Protobuf依赖

如果统一版本后还有问题,执行./gradlew app:dependencies输出依赖树,搜索com.google.protobuf,找到所有引入的Protobuf相关依赖。若发现某个第三方库引入了旧版本或多余的Protobuf,用exclude把它排除:

implementation('com.example:your-third-party-lib:1.0.0') {
    exclude group: 'com.google.protobuf', module: 'protobuf-java'
}

3. 精准排除重复的proto文件(替代pickFirst)

如果是proto定义文件本身的冲突,不要用pickFirst,而是用packagingOptions精准排除重复文件——前提是你确认这些重复文件内容完全一致,或排除的是不需要的版本:

android {
    packagingOptions {
        exclude 'google/protobuf/api.proto'
        exclude 'google/protobuf/type.proto'
        exclude 'google/protobuf/timestamp.proto'
        exclude 'google/protobuf/duration.proto'
        exclude 'google/protobuf/empty.proto'
    }
}

4. 升级到最新稳定版本(推荐)

尽量升级到Google官方推荐的最新稳定版Firebase/Play Services,新版本通常会优化依赖结构,修复这类重复依赖问题,同时还能获得更多功能和安全更新。

验证解决方案

执行./gradlew clean build确保编译通过,然后全面测试应用中使用Firebase/Play Services的功能(比如身份验证、云存储、消息推送等),确认没有运行时异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:39:27