首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解决重复的类依赖关系- gradle

解决重复的类依赖关系- gradle
EN

Stack Overflow用户
提问于 2019-07-09 23:59:24
回答 2查看 594关注 0票数 1

我已经寻找了很长时间的解决方案,但没有运气。我有谷歌云语音api和谷歌云翻译api的添加在同一项目。移除任何依赖项都会构建项目,但保留这两个依赖项会显示重复的类错误,我不知道如何解决这个问题。

依赖关系:

代码语言:javascript
复制
dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
// Support libraries
implementation "com.android.support:design:$supportLibraryVersion"
implementation "com.android.support:cardview-v7:$supportLibraryVersion"
implementation "com.android.support:recyclerview-v7:$supportLibraryVersion"

// gRPC
implementation "io.grpc:grpc-okhttp:$grpcVersion"
implementation "io.grpc:grpc-protobuf-lite:$grpcVersion"
implementation "io.grpc:grpc-stub:$grpcVersion"
implementation 'javax.annotation:javax.annotation-api:1.3.2'
protobuf 'com.google.protobuf:protobuf-java:3.8.0'

// OAuth2 for Google API
implementation('com.google.auth:google-auth-library-oauth2-http:0.7.0') {
    exclude module: 'httpclient'
}

//Translation
 implementation('com.google.cloud:google-cloud-translate:1.12.0') {
    exclude group: 'org.apache.httpcomponents'
    exclude group: 'org.json', module: 'json'
}
annotationProcessor 'com.google.cloud:google-cloud-translate:1.12.0'

// Tests
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'}

已尝试:

代码语言:javascript
复制
  packagingOptions {
    exclude 'META-INF/DEPENDENCIES'
    exclude 'META-INF/LICENSE'
    exclude 'META-INF/LICENSE.txt'
    exclude 'META-INF/license.txt'
    exclude 'META-INF/NOTICE'
    exclude 'META-INF/NOTICE.txt'
    exclude 'META-INF/notice.txt'
    exclude 'META-INF/ASL2.0'
    exclude 'project.properties'

}

什么都没解决。

错误:

代码语言:javascript
复制
 Duplicate class com.google.protobuf.AbstractMessageLite found in modules protobuf-java-3.4.0.jar (com.google.protobuf:protobuf-java:3.4.0) and protobuf-lite-3.0.1.jar (com.google.protobuf:protobuf-lite:3.0.1)
Duplicate class com.google.protobuf.AbstractMessageLite$Builder found in modules protobuf-java-3.4.0.jar (com.google.protobuf:protobuf-java:3.4.0) and protobuf-lite-3.0.1.jar (com.google.protobuf:protobuf-lite:3.0.1)

我应该排除哪些类,我应该对gradle属性做些什么?

EN

回答 2

Stack Overflow用户

发布于 2020-06-16 17:16:05

我也有同样的问题

添加:

排除组:'com.google.protobuf‘

代码语言:javascript
复制
 implementation('com.google.cloud:google-cloud-translate:1.12.0') {
            exclude group: 'org.apache.httpcomponents'
            exclude group: 'org.json', module: 'json'
            exclude group: 'com.google.protobuf'  

        }
        annotationProcessor 'com.google.cloud:google-cloud-translate:1.12.0'
    }

并确保这些属性对我有效:

代码语言:javascript
复制
packagingOptions {
    exclude 'META-INF/DEPENDENCIES'
    exclude 'META-INF/LICENSE'
    exclude 'META-INF/LICENSE.txt'
    exclude 'META-INF/license.txt'
    exclude 'META-INF/NOTICE'
    exclude 'META-INF/NOTICE.txt'
    exclude 'META-INF/notice.txt'
    exclude 'META-INF/ASL2.0'
    exclude 'project.properties'

}
票数 0
EN

Stack Overflow用户

发布于 2019-07-10 00:22:31

您可以通过单击导航选项下的选项迁移到androidx来将项目转换为androidx。也许这会有所帮助。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56956508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档