如何解决此错误(重复条目:com / google / gson / annotations / Expose.class?)

时间:2017-08-31 20:41:01

标签: java android gradle gson

每次我尝试构建APK时,此错误都会继续显示!我已经尝试了网站上提到的几乎所有灵魂,但没有运气!

  

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

     
    

com.android.build.api.transform.TransformException:         java.util.zip.ZipException:重复条目:com / google / gson / annotations / Expose.class

  

我的gradle文件:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    buildToolsVersion '26.0.1'


    lintOptions {
        quiet true
        abortOnError false
        ignoreWarnings true
    }
    configurations {
        all*.exclude group: 'commons-io'

    }

    packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/ASL2.0'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/LICENSE-FIREBASE.txt'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/DEPENDENCIES.txt'
        exclude 'BinaryEncoder.java'
    }

    defaultConfig {
        applicationId "com.xxxx.xxxxx"
        minSdkVersion 15
        targetSdkVersion 26
        versionCode 3
        versionName "1.2"
        multiDexEnabled true
        ndk {
            abiFilters "armeabi", "armeabi-v7a", "x86", "mips"
        }
    }
    sourceSets {
        main {
            java {
                exclude 'com.twilio:client-android:1.2.18.org.apache.http.lejacy.jar.org.apache.BinaryEncoder.java'
                exclude 'org.apache.commons.codec.BinaryEncoder.java'
            }
        }
        androidTest {
            java {
                exclude 'commons-codec-1.10/**'
            }
        }
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

repositories {
    mavenCentral()
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
     compile('com.twilio:client-android:1.2.18') {
        exclude group: 'org.apache.commons', module: 'commons-io'
    }
    compile project(':example')
    compile project(':zoomcommonlib')
    compile project(':zoommobilertc')

    compile("com.github.hotchemi:permissionsdispatcher:2.4.0") {
         exclude module: "support-v13"
    }

    compile('com.stripe:stripe-android:4.1.5') {
        transitive = true;
        exclude  group: 'com.google.code.gson', module: 'gson'
    }
    compile('com.squareup.retrofit:retrofit:1.9.0') {
        transitive = true;
        exclude  group: 'com.google.code.gson', module: 'gson'
    }

    compile 'com.google.android.gms:play-services-gcm:11.2.0'
     compile 'lib.kingja.switchbutton:switchbutton:1.1.3'
    compile 'com.orhanobut:hawk:2.0.1'
     compile 'com.afollestad:material-camera:0.4.4'
    compile 'com.werb.pickphotoview:pickphotoview:0.3.0'
     compile 'com.github.Kennyc1012:BottomSheet:2.3.4'
    compile 'com.facebook.android:facebook-android-sdk:[4,5)'
    compile 'com.android.support:design:26.0.1'
    compile 'com.android.support:cardview-v7:26.0.1'
    compile 'com.android.support:multidex:1.0.1'
    compile 'com.astuetz:pagerslidingtabstrip:1.0.1'
    compile 'com.google.android.gms:play-services-identity:11.2.0'
    compile 'com.google.android.gms:play-services-plus:11.2.0'
    compile 'com.google.android.gms:play-services-maps:11.2.0'
    compile 'com.google.code.gson:gson:2.8.1'
    compile 'com.squareup.okhttp:okhttp:2.5.0'
     compile 'de.greenrobot:eventbus:2.4.0'
    compile 'com.squareup.picasso:picasso:2.5.2'
    compile 'com.paypal.sdk:paypal-android-sdk:2.14.4'
    compile 'com.koushikdutta.ion:ion:2.1.8'
    compile 'com.afollestad.material-dialogs:core:0.8.6.0'
    compile 'com.amitshekhar.android:android-networking:1.0.0'
    compile 'de.hdodenhof:circleimageview:2.1.0'
    compile 'com.android.support:support-v4:26.0.1'
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
    testCompile 'junit:junit:4.12'
    annotationProcessor 'com.github.hotchemi:permissionsdispatcher-processor:2.4.0'
 }

以下是我尝试过的一些解决方案工作:

  1. 我添加了transitive = true; exclude group: 'com.google.code.gson', module: 'gson' for改进and条带`依赖

  2. 我删除了gson依赖

  3. 我想删除gson库的jar文件,但我在libs文件夹中找不到它??

  4. multiDexEnabled true已添加且无效

  5. 我已删除compile fileTree(dir: 'libs', include: ['*.jar'])

  6. 我认为它与 Zoom 模块或 Stripe 有任何帮助..!?

4 个答案:

答案 0 :(得分:2)

您可以尝试获取依赖关系树并确定它是哪个包。

答案 1 :(得分:1)

在android studio终端执行

./gradlew clean

并执行以下操作并重建

尝试将此添加到您的依赖项

compile'com.android.support:multidex:1.0.1'

并在清单中添加此

android:name="android.support.multidex.MultiDexApplication" 
应用程序标记中的

答案 2 :(得分:0)

我想出来了,首先......谢谢你的帮助无论如何......但是我把它作为公认的答案,因为它是为我制定的那个!

第1步 我使用(Double Shift)搜索整个项目中的重复类 它告诉我哪个库也使用同一个类..!就我而言,它是zoommobilertc

第2步

我尝试将这个库的gson模块排除在外:

compile project(':zoommobilertc'){
   exclude  group: 'com.google.code.gson', module: 'gson'
}

..但它没有用,它给了我错误,我认为它与exclude有关。我尝试了一些解决方案,但没有运气!

所以......我这样做了..

  • 打开项目视图
  • 打开外部库
  • 找到zoommobilertc并展开其文件夹
  • 的库
  • 删除显示。!
  • Gson jar文件

第3步

之后,我同步了该项目并尝试构建一个apk,这个错误显示:

Error:Execution failed for task ':app:transformClassesWithDexForDebug'. > com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: Error while executing java process with main class com.android.dx.command.Main with arguments {--dex --num-threads=4 --multi-dex --main-dex-list E:\*****\*****\app\build\intermediates\multi-dex\debug\maindexlist.txt --output E:\*****\*****\app\build\intermediates\transforms\dex\debug\folders\1000\1f\main E:\*****\*****\app\build\intermediates\transforms\jarMerging\debug\jars\1\1f\combined.jar}

然后搜索后我发现了一个修复:

我在android部分的 build.gradle 文件中添加了这个:

android{
//..
 dexOptions {
        javaMaxHeapSize "4g"
    }
//..
}

..和 local.properties 文件

中的这一行
org.gradle.jvmargs=-XX\:MaxHeapSize\=512m -Xmx512m

完成

答案 3 :(得分:0)

找出导致上述错误的依赖项并排除gson 如下依据你的依赖,

compile ('your_dependency'){
    exclude group : 'com.google.code.gson'
}