【问题标题】:TransformException after migrating to Android Studio迁移到 Android Studio 后的 TransformException
【发布时间】:2015-12-30 10:50:09
【问题描述】:

我尝试将一个正常工作的 Eclipse Android 项目导入 Android Studio。我正在使用最新版本的 Android Studio 在 Mac 上工作。当我尝试构建时,它一直显示此错误:

错误:任务执行失败 ':app:transformClassesWithJarMergingForDebug'.

com.android.build.api.transform.TransformException:java.util.zip.ZipException:重复条目: com/google/api/client/http/AbstractHttpContent.class

产生这个问题的类在 com.google.http-client:google-http-client-gson:1.20.0 库中,在 com.google.api.client.http 包中。我对 app.gradle 文件进行了很多尝试,例如排除 com.google.api.client.http 组,但没有任何效果。这是我的 app.gradle 文件:

apply plugin: 'com.android.application'

android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
useLibrary  'org.apache.http.legacy'

defaultConfig {
    applicationId "com.example.time2"
    minSdkVersion 17
    targetSdkVersion 19
    multiDexEnabled true
}

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
    }
}
compileOptions.encoding = 'ISO-8859-1'
}

repositories {
mavenCentral()
}

dependencies {
compile 'com.android.support:support-v4:20.0.0'
compile 'com.google.android.gms:play-services:+'
compile 'com.google.http-client:google-http-client-gson:1.20.0'
compile 'com.google.code.gson:gson:2.1'
compile files('libs/commons-io-2.4.jar')
compile files('libs/google-api-client-1.18.0-rc.jar')
compile files('libs/google-api-client-android-1.18.0-rc.jar')
compile files('libs/google-http-client-1.18.0-rc.jar')
compile files('libs/google-http-client-android-1.18.0-rc.jar')
compile files('libs/google-oauth-client-1.18.0-rc.jar')
compile files('libs/httpcore-4.3.3.jar')
compile files('libs/httpmime-4.3.6.jar')
compile files('libs/json-simple-1.1.1.jar')
compile files('libs/jsr305-1.3.9.jar')
compile 'com.stripe:stripe-android:+'
compile 'com.facebook.android:facebook-android-sdk:4.7.0'
}

【问题讨论】:

标签: android eclipse android-studio


【解决方案1】:

您应该避免手动将库添加到您的项目中。

例如。改变 编译文件('libs/commons-io-2.4.jar') 编译文件('libs/google-api-client-1.18.0-rc.jar') 编译文件('libs/google-api-client-android-1.18.0-rc.jar') 编译文件('libs/google-http-client-1.18.0-rc.jar') 编译文件('libs/google-http-client-android-1.18.0-rc.jar') 编译文件('libs/google-oauth-client-1.18.0-rc.jar') 编译文件('libs/httpcore-4.3.3.jar') 编译文件('libs/httpmime-4.3.6.jar') 编译文件('libs/json-simple-1.1.1.jar') 编译文件('libs/jsr305-1.3.9.jar') 至 编译'commons-io:commons-io:2.4' 编译'com.google.api-client:google-api-client:1.18.0-rc' 编译'com.google.api-client:google-api-client-android:1.18.0-rc' 编译'com.google.http-client:google-http-client:1.18.0-rc' 编译'com.google.http-client:google-http-client-android:1.18.0-rc' 编译'com.google.oauth-client:google-oauth-client:1.18.0-rc' 编译'org.apache.httpcomponents:httpcore:4.3.3' 编译'org.apache.httpcomponents:httpmime:4.3.6' 编译'com.googlecode.json-simple:json-simple:1.1.1' 编译'com.google.code.findbugs:jsr305:1.3.9'

请确认这些是正确的包。让我们知道您在更新后发现了什么?

【讨论】:

    【解决方案2】:

    'com.google.http-client:google-http-client-gson:1.20.0'由以下九个模块组成:

    google-http-client
    google-http-client-android
    google-http-client-appengine
    google-http-client-xml
    google-http-client-protobuf
    google-http-client-jdo
    google-http-client-jackson
    google-http-client-jackson2
    google-http-client-gson
    

    其中一些例如google-http-client 再次作为 jar 包含在游览依赖项中。因此重复的条目。

    在使用google-http-java-client 时,请查看此链接以获得正确的设置。它有一步一步的指导 - Setup Instructions

    【讨论】:

      猜你喜欢
      • 2013-09-04
      • 1970-01-01
      • 2023-03-03
      • 2014-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多