2016-06-18 34 views
2

错误描述:如何在Android中解决“TransformException:java.util.zip.ZipException:重复条目”?

Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'. > com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/google/api/client/http/AbstractInputStreamContent.class

这里是我的gradle这个代码

apply plugin: 'com.android.application' 

android { 
compileSdkVersion 23 
buildToolsVersion "23.0.3" 

defaultConfig { 
    applicationId "com.richwebs.user.hohoride" 
    minSdkVersion 15 
    targetSdkVersion 23 
    versionCode 1 
    versionName "1.0" 
    multiDexEnabled true 
} 
buildTypes { 
    release { 
     minifyEnabled false 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
    } 
} 

packagingOptions{ 
    exclude 'META-INF/DEPENDENCIES' 
    exclude 'META-INF/NOTICE' 
    exclude 'META-INF/LICENSE' 
} 
} 

dependencies { 
compile fileTree(dir: 'libs', include: ['*.jar']) 
testCompile 'junit:junit:4.12' 
compile('com.google.api-client:google-api-client-android:1.20.0') { 
    exclude group: 'org.apache.httpcomponents' 
} 

compile 'com.android.support:appcompat-v7:23.4.0' 
compile 'com.google.android.gms:play-services:9.0.2' 
compile 'com.google.android.gms:play-services-base:9.0.2' 
compile 'com.google.android.gms:play-services-analytics:9.0.2' 
compile 'com.google.android.gms:play-services-maps:9.0.2' 
compile 'com.mcxiaoke.volley:library-aar:1.0.0' 
compile 'com.android.support:design:23.4.0' 
compile 'com.android.support:support-v4:23.4.0' 
compile 'com.google.android.gms:play-services-ads:9.0.2' 
compile 'com.google.android.gms:play-services-auth:9.0.2' 
compile 'com.google.android.gms:play-services-gcm:9.0.2' 
compile group: 'commons-io', name: 'commons-io', version: '2.0.1' 

} 
android { 
useLibrary 'org.apache.http.legacy' 
} 
+0

先告诉我你应用dexConfig? –

+0

不,我不使用dexconfig –

+0

否则把整个gradle.build代码..所以我可以建议你你必须实现 –

回答

1

有,如果在您的应用程序的方法refrences超过其上限则提高到解决这个问题

  1. 双向像这样堆积。

dexOptions { preDexLibraries = false javaMaxHeapSize "4g" }

并且还使mutidexSupport这样的:

defaultConfig { 

     multiDexEnabled true 
    } 

dependencies { 
    compile 'com.android.support:multidex:1.0.1' 
} 

,还可以设置名称属性,在清单文件:

<application 
     android:name="android.support.multidex.MultiDexApplication" > 
</application> 
  • 如果这将不起作用,那么你只有一个选项,并在你的gradle文件中排除重复的库。这个错误称为“已经添加”,并且它在lib中添加.jar文件时发生。文件夹,并为此设置gradle依赖关系。
  • 这里是我的gradle全文件代码..

    apply plugin: 'com.android.application' 
    
    android { 
        compileSdkVersion 23 
        buildToolsVersion "23.0.3" 
        useLibrary 'org.apache.http.legacy' 
    
        dexOptions { 
         preDexLibraries = false 
         javaMaxHeapSize "4g" 
        } 
    
        defaultConfig { 
         applicationId "com.apple" 
         minSdkVersion 15 
         targetSdkVersion 23 
         versionCode 1 
         versionName "1.0" 
         multiDexEnabled true 
        } 
        buildTypes { 
         release { 
          minifyEnabled false 
          proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
         } 
        } 
    
        compileOptions { 
         sourceCompatibility JavaVersion.VERSION_1_7 
         targetCompatibility JavaVersion.VERSION_1_7 
        } 
    
        packagingOptions { 
         exclude 'META-INF/license.txt' 
         exclude 'META-INF/LICENSE' 
         exclude 'META-INF/notice.txt' 
         exclude 'META-INF/NOTICE' 
         exclude 'META-INF/DEPENDENCIES' 
         exclude 'META-INF/LICENSE' 
         exclude 'META-INF/LICENSE-FIREBASE.txt' 
         exclude 'META-INF/NOTICE' 
        } 
    } 
    
    dependencies { 
        testCompile 'junit:junit:4.12' 
        compile 'com.android.support:support-v4:23.3.0' 
        compile 'com.android.support:appcompat-v7:23.3.0' 
        compile 'com.android.support:design:23.3.0' 
        compile project(':library') 
        compile files('libs/httpmime-4.3.jar') 
        compile files('libs/gcm.jar') 
        compile 'com.mcxiaoke.volley:library:1.0.19' 
        compile 'com.google.code.gson:gson:2.4' 
        compile 'com.squareup.picasso:picasso:2.5.2' 
        compile 'com.android.support:multidex:1.0.1' 
        compile 'com.firebase:firebase-client-android:2.3.1' 
        compile files('libs/httpcore-4.3.2.jar') 
        compile files('libs/httpclient-4.3.3.jar') 
    } 
    
    configurations { 
        all*.exclude group: 'com.android.support', module: 'support-vector-drawable' 
        all*.exclude group: 'com.android.support', module: 'animated-vector-drawable' 
        all*.exclude group: 'com.android.support', module: 'support-annotations' 
    } 
    

    我有这三个模块的问题,所以Ø刚刚从所有的依赖排除,和我的错误了。

    +1

    在我的情况下,这是行不通的@sagar –

    +0

    bcz你是仅从一个库中排除。你应该像我所做的那样从所有库中排除。并且不通过组。传递模块也是,bcz当我得到这个问题时,我提到了很多stackoverflow的链接。这是我找到的最佳解决方案。 –

    +0

    什么是方式2?此外,问题是否改变?多分辨率在这里必须做什么? –

    0

    也许在不同的版本导入库

    compile 'com.google.android.gms:play-services-analytics:9.0.0' // wrong! 
        compile 'com.google.android.gms:play-services-gcm:9.0.2' 
    

    确保,你总是使用相同版本一样的问题:

    compile 'com.google.android.gms:play-services-analytics:9.0.2' 
        compile 'com.google.android.gms:play-services-gcm:9.0.2' 
    
    相关问题