如何解决依赖中同名不同实现的com.google.api.Advice类冲突
Firebase与Google Cloud KMS依赖冲突:Duplicate class com.google.api.Advice
此前未在任何地方找到该问题的解决方案。项目的build.gradle(:app)中原本包含以下依赖:
... implementation platform('com.google.firebase:firebase-bom:30.4.1') implementation 'com.google.firebase:firebase-auth' implementation 'com.google.firebase:firebase-storage' implementation 'com.google.firebase:firebase-firestore' ...
添加以下依赖后:
implementation platform('com.google.cloud:libraries-bom:26.1.1') implementation 'com.google.cloud:google-cloud-kms'
重新构建项目时出现错误:
Duplicate class com.google.api.Advice found in modules
jetified-proto-google-common-protos-2.9.2
(com.google.api.grpc:proto-google-common-protos:2.9.2) and
jetified-protolite-well-known-types-18.0.0-runtime
(com.google.firebase:protolite-well-known-types:18.0.0)
我发现com.google.api.Advice是两个包名相同但实现完全不同的类:
Gradle: com.google.firebase:protolite-well-known-types:18.0.0@aar
package com.google.api; import ... public final class Advice extends GeneratedMessageLite<Advice, Advice.Builder> implements AdviceOrBuilder { ... }
Gradle: com.google.api.grpc:proto-google-common-protos:2.9.2
package com.google.api; public final class Advice extends com.google.protobuf.GeneratedMessageV3 implements AdviceOrBuilder { ... }
由于二者均影响应用功能,无法直接使用exclude排除其中任何一个类,否则会导致应用部分功能丢失。我需要保留这两个类,该如何处理?或者我对问题的定位是否有误?
内容的提问来源于stack exchange,提问作者user10263947
相关产品推荐
相关产品推荐

