Google Translate API出错(错误:任务执行失败':app:transformClassesWithJarMergingForDebug,重复条目)

时间:2016-11-02 11:45:35

标签: android dependencies android-gradle google-cloud-platform google-translate

我正在尝试在我的应用中实现语言翻译功能,因此为了实现此功能,我使用的是Gradle Dependency:“com.google.cloud:google-cloud-translate:0.5.0”在同步依赖项后,我收到以下警告:

同步后 信息:Gradle任务[:app:generateDebugSources,:app:generateDebugAndroidTestSources,:app:mockableAndroidJar,:app:prepareDebugUnitTestDependencies]

警告:警告:依赖org.apache.httpcomponents:httpclient:4.0.1因调试而被忽略,因为它可能与Android提供的内部版本冲突。

警告:警告:调试将忽略依赖项org.json:json:20151123,因为它可能与Android提供的内部版本冲突。

警告:警告:依赖org.apache.httpcomponents:httpclient:4.0.1因调试而被忽略,因为它可能与Android提供的内部版本冲突。

警告:警告:调试将忽略依赖项org.json:json:20151123,因为它可能与Android提供的内部版本冲突。

警告:警告:依赖org.apache.httpcomponents:httpclient:4.0.1因发布而被忽略,因为它可能与Android提供的内部版本冲突。

警告:警告:依赖org.json:json:20151123会因发布而被忽略,因为它可能与Android提供的内部版本冲突。

警告:警告:依赖org.apache.httpcomponents:httpclient:4.0.1因发布而被忽略,因为它可能与Android提供的内部版本冲突。

警告:警告:版本会忽略依赖项org.json:json:20151123,因为它可能与Android提供的内部版本冲突。 信息:建立成功

信息:总时间:4.54秒 信息:0错误 信息:8个警告 信息:请参阅控制台中的完整输出

当我在同步后运行项目时出现以下错误:

重复条目:com / google / protobuf / AbstractMessageLite $ Builder $ LimitedInputStream.class

运行项目后的错误

信息:Gradle任务[:app:assembleDebug]

警告:警告:依赖org.apache.httpcomponents:httpclient:4.0.1因调试而被忽略,因为它可能与Android提供的内部版本冲突。

警告:警告:调试将忽略依赖项org.json:json:20151123,因为它可能与Android提供的内部版本冲突。

警告:警告:依赖org.apache.httpcomponents:httpclient:4.0.1因调试而被忽略,因为它可能与提供的内部版本冲突 机器人。

警告:警告:调试将忽略依赖项org.json:json:20151123,因为它可能与Android提供的内部版本冲突。

警告:警告:依赖org.apache.httpcomponents:httpclient:4.0.1因发布而被忽略,因为它可能与Android提供的内部版本冲突。

警告:警告:依赖org.json:json:20151123会因发布而被忽略,因为它可能与Android提供的内部版本冲突。

警告:警告:依赖org.apache.httpcomponents:httpclient:4.0.1因发布而被忽略,因为它可能与Android提供的内部版本冲突。

警告:警告:依赖org.json:json:20151123会因发布而被忽略,因为它可能与Android提供的内部版本冲突。

警告:AndroidManifest.xml已经定义了debuggable(在http://schemas.android.com/apk/res/android中);使用清单中的现有值。

错误:任务':app:transformClassesWithJarMergingForDebug'的执行失败。 com.android.build.api.transform.TransformException:java.util.zip.ZipException:重复条目:com / google / protobuf / AbstractMessageLite $ Builder $ LimitedInputStream.class

信息:建筑失败 信息:总时间:38.0秒 信息:1错误 信息:9警告 信息:请参阅控制台中的完整输出

2 个答案:

答案 0 :(得分:2)

finally.... i solved it by doing this

1. changing the google play services dependency version from 9.8.0 to 9.6.0.

 2.forcing google play services to install in "resolutionStrategy" section



 ie: `configurations.all {
        resolutionStrategy {
              force 'com.google.android.gms:play-services:9.6.0'
        }
    }`

note these are the main changes i did in my gradle:

     compile ('com.google.cloud:google-cloud-translate:0.5.0') {
                exclude group: 'io.grpc', module: 'grpc-all'
                exclude group: 'com.google.protobuf', module: 'protobuf-java'
                exclude group: 'com.google.api-client', module: 'google-api-client-appengine'
            }

and configurations to force dependencies to override some common classes 

    configurations.all {
            exclude group: "org.apache.httpcomponents", module: "httpclient"
            exclude group: 'org.json', module: 'json'
            resolutionStrategy {
                force 'com.google.code.findbugs:jsr305:1.3.9'
                force 'com.android.support:design:23.4.0'
                force 'com.android.support:support-v4:23.4.0'
                force 'com.android.support:appcompat-v7:23.4.0'
                force 'com.google.android.gms:play-services:9.6.0'
            }
        }

答案 1 :(得分:0)

您需要将其从lib中排除。 你应该在你的gradle中有这样的东西

compile('com.google.cloud:google-cloud-translate:0.5.0') {
    exclude group: 'org.apache.httpcomponents'
}