1

I am using zoom.us sdk and retrofit2 in my app, zoom.us sdk use Gson-2.1.jar and i am also using converter-gson for retrofit that use Gson-2.8.0 due to this when i build the apk i am getting error below.

Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'.
> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/google/gson/Gson$5.class

App build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.0"
    defaultConfig {
        applicationId "com.android.******"
        minSdkVersion 15
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        // Enabling multidex support.
        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(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:multidex:1.0.1'
    compile 'com.android.support:appcompat-v7:24.1.0'
    compile 'com.android.support:design:24.1.0'
    testCompile 'junit:junit:4.12'
    compile 'com.jakewharton:butterknife:8.4.0'
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'
    compile 'com.android.support:cardview-v7:24.1.0'
    compile project(':zoomcommonlib')
    compile (project(':zoomsdk')){
        transitive = true;
        exclude module: 'gson'
    }
    compile 'com.squareup.retrofit2:retrofit:2.1.0'
    compile 'com.google.code.gson:gson:2.6.2'
    compile 'com.squareup.retrofit2:converter-gson:2.1.0'
}

I also add below code in app build.gradle but didn't resolve the issue.

configurations {
    all*.exclude group: 'com.google.gson', module: 'gson-2.7'
    all*.exclude group: 'com.google.api.client.json.gson', module: 'zoomsdk-unspecified'
    all*.exclude group: 'com.google.gson', module: 'zoomsdk-unspecified'
}

And

 compile (project(':zoomsdk')){
        exclude group: 'com.google.code.gson';
    }

How to resolve this issue?

Community
  • 1
  • 1
Naveen Kumar
  • 3,738
  • 4
  • 29
  • 50

1 Answers1

1

I Faced same Problem its because Zoom and Retrofit Both are using gson and also i tried to use all exclude methods but didn't reach to any solution.Finally i found the solution:

1-Remove

   compile 'com.squareup.retrofit2:converter-gson:2.1.0'

2-Add

   compile 'com.squareup.retrofit2:converter-jackson:2.1.0'

and follow jackson converter process in your Response model. Make sure that you have default constructor in the model

@JsonIgnoreProperties(ignoreUnknown=true)
public class User
{
@JsonProperty("id")
public int id;
@JsonProperty("username")
public String username;
@JsonProperty("first_name")
public String first_name;
@JsonProperty("email")
public String email;
@JsonProperty("last_name")
public String last_name;
@JsonProperty("gender")
public String gender;
@JsonProperty("profile_image_path")
public String profile_image_path;

  // must implement default constructor 
public User()
{
}
Mina Farid
  • 5,041
  • 4
  • 39
  • 46